惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
博客园 - 【当耐特】
博客园 - 叶小钗
量子位
博客园 - 聂微东
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
宝玉的分享
宝玉的分享
小众软件
小众软件
罗磊的独立博客
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog

博客园 - nametmp

【转】Resource与Resx的区别 - nametmp - 博客园 异步调用过程 enum枚举用法笔记 对C#委托的理解 对using的新认识 视频文件信息读取器 琐碎记录 【转贴】GridView里面的HYPERLINK数据邦定 【转贴】数据邦定语法 - nametmp - 博客园 TableAdapter、Dataset与BindingSource的关系 webform 可视化在gridview中加入其它控件 WinForm 加入登陆窗体(c#) winform 中的 datagridview 添加 progressbar列 和 calendar 列 远程删除Kaspersky(被Kaspersky搞了一天) SqlServer2000登陆角色的具体权限 终于用sqlcmd连上sqlserver2005express了 sqlserver操作摘录 [转]SQL Server 2005中的SQLCMD工具使用 [转]sqlserver2005(Express版)的配置
Winform用匿名方法新建线程的方法
nametmp · 2010-11-17 · via 博客园 - nametmp

1、将耗时的操作放在单独的线程,加快UI的响应速度。
(new Thread(delegate() { parse.ParseDay(StockCodeFileName,market,Overlay); })).Start();
在主线程A(Form)上新建线程B

2、非UI线程操作UI上的控件属性。
 this.BeginInvoke((ThreadStart)delegate()
{
      tbMessage.Text += String.Format("{0:HH:mm:ss},{1},{2}。\r\n", DateTime.Now, e.StockCode, e.Message);
});
Form继承自Control,Control内包含IAsyncResult BeginInvoke(Delegate method, object[] args)、object EndInvoke(IAsyncResult result)、object Invoke(Delegate method, object[] args)、bool InvokeRequired { get; }。其他线程不能直接操作Form内的控件,但通过Invoke、BeginInvoke可以把其他线程的代码转移到到Form的线程内执行。
this代表主线程A(Form)。delegate(){...}内的代码原本是在B线程内,通过this.BeginInvoke封装后,转移到A线程内执行。