2014-09-30 19 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

相關問題