2014-09-30 22 views
1

我有一个启动包含非托管代码的工作进程的Windows桌面应用程序。非托管代码不是线程安全的 - 我将它包装在一个进程中以完全隔离它。在Windows 8 App Store应用程序中使用unthreadsafe,非托管代码?

我想为Windows应用程序(metro)市场创建一个新版本。

任何人都有任何建议从地铁应用做同样的事情?似乎没有任何方法可以真正启动一个单独的进程(至少,没有需要单独安装的黑客)。我可以将它包装在一个AppDomain中,但我认为这不会提供我需要的隔离。我可以PINVOKE ONE实例,但线程安全问题使其成为多个实例的问题。

+0

如果不应该并行运行2,那么不要这样做......我不确定是什么问题? – 2014-10-01 01:48:14

+0

Alexei - 每个进程都连接到一个流并进行记录。桌面版本一次记录多个。如果只是线程化这个代码会很棒,但是原始代码是非常非线程安全的。 – Greg 2014-10-01 17:23:17

+0

我明白了。考虑让你的需求变得清晰,因为它看起来像顺序执行从原始帖子开始就很好。 – 2014-10-01 18:34:23

回答

2

Windows Store应用程序无法启动任意进程,但可以从其应用程序包内启动超程序组件。您可以将不安全的代码包装在Windows Runtime EXE组件中。

有一个演示这在Creating a Windows Runtime EXE component with C++ sample

还要确保现有流程不依赖于不可用的到Windows Store应用程序的API(如System.AppDomain)。 MSDN有运行时应用程序可用的.Net和Win32 API的文档,其中.NET for Windows Runtime appsWin32 and COM APIs

相关问题