WinForm中异步刷新窗体
来源:互联网 发布:淘宝双十一前十一秒 编辑:程序博客网 时间:2024/06/17 22:19
原帖地址:
http://topic.csdn.net/u/20111108/09/07216bf6-d888-43c5-9192-87ffa4b4892c.html
public class Flag { public static bool IsOpen { set; get; } public static object lockObj = new object(); }
public delegate void FunDelegate(); public delegate void SetValue(int i); public delegate void CloseForm(); private void Form3_Load(object sender, EventArgs e) { Flag.IsOpen = true; } private void button1_Click(object sender, EventArgs e) { FunDelegate fundelegate = new FunDelegate(FunProc); AsyncCallback callback = new AsyncCallback(CallBack); IAsyncResult result = fundelegate.BeginInvoke(callback, "处理结束"); } public void CallBack(IAsyncResult result) { MessageBox.Show(result.AsyncState.ToString()); } public void FunProc() { for (int i = 0; i < 5000; i++) { Thread.Sleep(100); if (Flag.IsOpen && this != null && !this.IsDisposed) { lock (Flag.lockObj) { if (Flag.IsOpen && this != null && !this.IsDisposed) { this.Invoke(new SetValue(SetListBox), i); } else { break; } } } else { break; } } } public void SetListBox(int i) { if (Flag.IsOpen && this != null && !this.IsDisposed) { listBox1.Items.Add(i); } } private void Form3_FormClosing(object sender, FormClosingEventArgs e) { if (Flag.IsOpen) { Flag.IsOpen = false; if (Monitor.TryEnter(Flag.lockObj, 2000)) { Monitor.Exit(Flag.lockObj); } else { e.Cancel = true; new Thread(() => { Thread.Sleep(1000); this.Invoke(new CloseForm(() => this.Close())); }).Start(); } } }
详细过程晚上补.
- WinForm中异步刷新窗体
- WinForm中异步刷新窗体
- Winform中如何实现子窗体刷新父窗体
- winform 刷新父窗体
- Winform中如何实现父窗体传递数据到子窗体并刷新子窗体
- [Winform]winform 刷新父窗体(转)
- Winform子窗体刷新父窗体
- Winform子窗体刷新父窗体
- winform中子窗体关闭刷新父窗体
- Winform子窗体刷新父窗体
- Winform子窗体刷新父窗体
- 异步调用解决winform窗体假死
- Winform开发系列 - 子窗体刷新父窗体
- WinForm关闭子窗体时刷新父窗体
- WinForm中的DataGridView子窗体刷新父窗体备忘
- WinForm中的DataGridView子窗体刷新父窗体备忘
- winform 子窗体数据改变刷新父窗体
- WinForm中创建不规则窗体
- VS2010灵活运用快捷操作功能
- c++编程中的调试技巧(C++编程思想)
- C#给MDI主窗口添加背景最简单的办法
- 机房收费系统的数据库设计
- 关于HTTP
- WinForm中异步刷新窗体
- 等差数列前n项和
- x86 和 x64平台下数据类型大小
- 单例模式
- Android多线程及异步处理问题
- hash table——散列表
- myeclipse 快捷键功能大全
- QQ协议分析之TCPF包结构
- 程序员面试100题之六:最长公共子串