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

推荐订阅源

Y
Y Combinator Blog
B
Blog
S
SegmentFault 最新的问题
Vercel News
Vercel News
博客园 - 聂微东
宝玉的分享
宝玉的分享
C
Check Point Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
V
V2EX
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
博客园 - 司徒正美
博客园_首页
Last Week in AI
Last Week in AI
博客园 - 叶小钗
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Fortinet All Blogs
腾讯CDC
J
Java Code Geeks

博客园 - 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线程内执行。