[英]How to run a form with its own message pump?
我有一個應用程序,我需要打開許多 forms,它們與我自己的不同並獨立運行。 然后我的應用程序繼續阻止長時間運行的操作(使這些操作異步是不可能的)。 所以我想用它們自己的消息泵在單獨的線程上運行這些 forms。
有什么辦法嗎?
Application.Run();
這應該在自己的線程上啟動表單,並使用自己的消息泵。
編輯: http : //en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0%E2%80%94Application_Lifetime
由於每當調用Application.Run時都會創建一個新的UI線程,因此這應該可以完成您要查找的內容。
編輯#2: http : //msdn.microsoft.com/en-us/library/system.windows.forms.application.run(VS.71).aspx
文檔有點含糊不清。 我總是使用ThreadPool完成長時間運行操作,並定期將控件回調到表單以呈現狀態,但聽起來你可以使用Application.Run()生成多個表單。
使用重載 Application.Run(ApplicationContext)。 之前創建一個 ApplicationContext,給它表單 (context.MainForm=yourForm)。 當窗體關閉或以其他方式完成時,調用 ApplicationContext.ExitThread()。 快樂的編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.