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

推荐订阅源

美团技术团队
B
Blog RSS Feed
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
D
Docker
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
C
Check Point Blog
The Cloudflare Blog
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
量子位
The GitHub Blog
The GitHub Blog
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Vercel News
Vercel News
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
博客园 - 司徒正美

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