- 最後登錄
- 2024-2-27
- 在線時間
- 0 小時
- 註冊時間
- 2014-8-27
- 閱讀權限
- 20
- 精華
- 0
- UID
- 14791977
- 帖子
- 7
- 積分
- 1 點
- 潛水值
- 2860 米
| 不知道為什麼只顯示一行,補上- public class MyClass
- {
- public static void Main()
- {
- Global.hView1 = new View();
- Global.hView1.Text = "Use ShowDialog()";
- Global.hView2 = new View();
- Global.hView2.Text = "Use Show()";
- Global.hProcess = new BackgroundProcess();
- Console.ReadLine();
- }
- }
- public class Global
- {
- public static View hView1, hView2;
- public static BackgroundProcess hProcess;
- }
- public partial class View : Form
- {
- private delegate void DoUiShow();
- private delegate void DoUiShowDialog();
- public View()
- {
- this.FormClosing += new FormClosingEventHandler(this.View_FormClosing);
- }
- public void UiShow()
- {
- if(InvokeRequired)
- {
- this.Invoke(new DoUiShow(UiShow));
- return;
- }
- this.Show();
- }
- public void UiShowDialog()
- {
- if(InvokeRequired)
- {
- this.Invoke(new DoUiShowDialog(UiShowDialog));
- return;
- }
- this.ShowDialog();
- }
- private void View_FormClosing(object sender, FormClosingEventArgs e)
- {
- this.Dispose();
- }
- }
- public class BackgroundProcess
- {
- private BackgroundWorker _worker;
- public BackgroundProcess()
- {
- _worker = new BackgroundWorker();
- _worker.DoWork += new DoWorkEventHandler(_worker_DoWork);
- _worker.WorkerSupportsCancellation = true;
- _worker.RunWorkerAsync();
- }
-
- private void _worker_DoWork(object sender, DoWorkEventArgs e)
- {
- while(!_worker.CancellationPending)
- {
- if(Global.hView1.IsDisposed == false && Global.hView1.Visible == false)
- {
- Global.hView1.UiShowDialog();
- }
- if(Global.hView1.IsDisposed == true && Global.hView2.Visible == false)
- {
- Global.hView2.UiShow();
- }
- if(Global.hView1.IsDisposed == true && Global.hView2.IsDisposed == true)
- {
- _worker.CancelAsync();
- }
- }
- }
- }
複製代碼 ... |
|