首页 \ 问答 \ 后台服务应用程序可以由两个应用程序访问(Background Service application can be accessed by two applications)

后台服务应用程序可以由两个应用程序访问(Background Service application can be accessed by two applications)

我可以使用Windows手机创建后台服务应用程序可以在同一设备上的其他两个应用程序访问吗?

概念两个应用程序与“后台服务”应用程序通信

谢谢


Can I create with Windows phone a Background Service application can be accessed by two other applications on the same device ?

Concept two applications communicate with a "background service" application

thanks


原文:https://stackoverflow.com/questions/34181373
更新时间:2022-05-27 07:05

最满意答案

如果文件映射由实际文件而不是内存块支持,则可以通过以下两种方式之一调整文件大小:

1)调用CreateFileMapping() ,其大小超过当前文件大小。 将调整文件大小以匹配新映射。

2)使用SetFilePointer()SetEndOfFile()直接调整文件大小,然后使用新大小调用CreateFileMapping()

CreateFileMapping()的文档中描述了这两个条件。


If the file mapping is backed by an actual file and not a block of memory, then you can resize the file in one of two ways:

1) call CreateFileMapping() with a size that exceeds the current file size. The file will be resized to match the new mapping.

2) use SetFilePointer() and SetEndOfFile() to resize the file directly, then call CreateFileMapping() with the new size.

Both conditions are described in the documentation for CreateFileMapping().

相关问答

更多
  • 内存映射文件对于需要重复访问相对较大的文件的相对较小部分(视图)的场景是有益的。 在这种情况下,操作系统可以通过仅映射和传出映射文件的最近使用的部分来帮助优化应用程序的整体内存使用和分页行为。 此外,内存映射文件可以显示有趣的功能,如写时复制或作为共享内存的基础。 对于您的方案,内存映射文件可以帮助您组装文件,如果这些块到达不正确。 但是,您仍然需要提前知道最终的文件大小。 此外,您应该只访问一次文件,以便编写一个块。 因此,超过明确实现的异步I / O的性能优势是不太可能的,但是可以更容易和更快地实现文件 ...
  • 内存映射文件一次将数据从磁盘复制到内存中。 未使用的页面可以自由交换,与任何其他虚拟内存相同,除非已使用mlock(2)将其连接到物理内存中mlock(2) 。 内存映射将确定从磁盘复制到内存以及何时到操作系统。 从基础级别到BSD级别使用mmap不太可能产生很大的区别,除了必须与其他基础代码接口的代码更加尴尬。 Memory-mapped files copy data from disk into memory a page at a time. Unused pages are free to be ...
  • 我认为优点是真正减少了传统的阅读文件方式所需的数据复制量。 如果您的应用程序可以在内存映射文件中使用数据“就位”,它可以进入而不被复制; 如果您使用系统调用(例如Linux的pread()),那通常涉及内核将数据从其自己的缓冲区复制到用户空间中。 这种额外的复制不仅需要时间,而且可以通过访问这些额外的数据副本来降低CPU缓存的有效性。 如果数据实际上必须从光盘读取(如在物理I / O中),则操作系统仍然必须读取它们,页面错误可能不比系统调用更好的性能,但如果它们不要(即已经在OS缓存中),性能在理论上应该好 ...
  • 您可以从字节缓冲区和计数中创建一个CFData() 。 鉴于此,你应该能够mmap()有问题的文件,然后将映射的字节缓冲区传递给CFDataCreateWithBytesNoCopy() 。 唯一真正的复杂是你需要使用知道如何将munmap()作为bytesDeallocator 。 You can create a CFData() from a byte buffer and a count. Given this, you should just be able to mmap() the file ...
  • 是的,它确实。 它甚至支持在CDFS或网络驱动器上映射文件。 你怀疑的根源是什么? Yes it does. It even supports mapping of files on CDFS or on network drives. What is the source of your doubts?
  • 因此,根据对象的大小,您可以将它们存储在哈希映射中,该映射保留LRU列表并开始将对象驱逐到文件,同时在地图中保持键和文件偏移。 这样,当你确实需要从磁盘中取回它时,它是一个搜索和读取以获取对象。 如果你想要预先分配固定大小的文件,你可以mmap它们,你的偏移将成为另一个指针。 这简化了Riak数据库初始存储的工作方式,他们在网站上有一些设计文档[1] [2]。 这只有在你的对象大于键的情况下才能正常工作,这样所有键都可以很容易地放在内存中,但对象却不能。 Cassandra数据库使用与“密钥缓存”类似的技术 ...
  • 一个问题是程序的逻辑顺序不正确。 此行为CUDA API提供的data分配值: err = cudaHostAlloc((void**)&data, data_file_size, cudaHostAllocMapped); 然后该行用新的值覆盖该值: data = (uint32_t*) mmap(0, data_file_size, PROT_READ, MAP_PRIVATE, data_file, 0); 此时,CUDA API无法将data值识别为固定内存空间,因此当您调用此数据时: err ...
  • 如果您发现使用内存映射文件的进程持有很多这些页面,那么这意味着操作系统不需要丢弃任何内存映射区域以提供给其他进程。 那么,您如何知道其他进程实际上需要当前用于映射文件的内存? 仅仅因为操作系统物理RAM较低就没有任何意义。 其他进程必须要求内存使操作系统删除映射的页面并为它们提供RAM。 因此,您的mmap-I / O进程似乎正在使您的其他进程不再使用RAM。 一种方法是明智地锁定正在饥饿的进程中的内存。 查看VirtualLock for win32。 Ended up using brute force ...
  • 如果文件映射由实际文件而不是内存块支持,则可以通过以下两种方式之一调整文件大小: 1)调用CreateFileMapping() ,其大小超过当前文件大小。 将调整文件大小以匹配新映射。 2)使用SetFilePointer()和SetEndOfFile()直接调整文件大小,然后使用新大小调用CreateFileMapping() 。 CreateFileMapping()的文档中描述了这两个条件。 If the file mapping is backed by an actual file and no ...
  • 神奇的词是“图书馆介入”。 这是一个很好的教程: http : //developers.sun.com/solaris/articles/lib_interposers.html 当Oracle购买sun时,许多文章似乎已经消失,并且/或者无法通过Oracle网站访问。 以下是目前可用的一些链接: 这是2001年发表的原始文章: 为乐趣和利润建立图书馆插入者 (Dobbs博士) developers.sun.com链接是原作者的转贴,可能与2001年的文章有所不同; 这是重新发布: 使用库中介器进行调试和 ...

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)