当前注册人数422426人 邮箱: 密码: 注册新用户 忘记密码
首页 C/C++/MFC C# ASP.NET VB.NET MATLAB Android   站内搜索 下载代码说明/积分规则
为什么要注册?

1. 可以直接免费从本站下载代码,防止邮件发送不到您的邮箱,或登录不了国外网站

2. 可以设定关键字,当有您关心的代码收录时,邮件通知您

3. 对这里的代码进行评分和评论

4. 可以和大家一起分享你的源代码,得到更多的建议

An Alternate Way of Writing a Multithreaded GUI in C#

C#中最快速的多线程界面操作源代码

2007年12月09日
C# (C# 1.0, C# 2.0, C# 3.0), .NET (.NET 3.5, .NET 3.0, .NET 1.0, .NET 1.1, .NET 2.0, Mono, DotGNU), WinForms, Dev
本程序不是采用通用的InvokeRequired(), BeginInvoke() 和 EndInvoke()在多线程中操作界面控件,而是直接在线程中操作,这样避免了不必要的线程切换操作,达到最快速的更新速度。
相关知识

最核心代码:

private void theMainForm_Load(object sender, EventArgs e)
        {
            // Prevent the framework from checking what thread the GUI is updated from.

            theMainForm.CheckForIllegalCrossThreadCalls = false;

            // Create our worker threads and name them. 

            // The name will be used to associate a thread with a specific ListBox.

            worker1 = new Thread(new ThreadStart(UpdateListBox));
            worker1.Name = "Worker1";

            worker2 = new Thread(new ThreadStart(UpdateListBox));
            worker2.Name = "Worker2";

            worker3 = new Thread(new ThreadStart(UpdateListBox));
            worker3.Name = "Worker3";

            worker4 = new Thread(new ThreadStart(UpdateListBox));
            worker4.Name = "Worker4";

            // Get all the threads running.

            Start();
        }
源代码原文下载:
An Alternate Way of Writing a Multithreaded GUI in C# This article outlines an alternate method of writing a responsive multithreaded Windows Forms GUI in C#. When I say "alternate," I mean a technique that does not follow the current Microsoft mantra that only the thread that created a GUI control should interact with it. Provided that care is taken to enforce that only the thread associated with a particular control is allowed to update it, then this technique can produce an extremely fast and responsive GUI. An additional benefit can be seen in the simplification of the code, as no calls to InvokeRequired(), BeginInvoke() or EndInvoke() are required. In addition, the performance overhead of marshaling calls onto the GUI thread has also been removed. If speed in the Windows Forms GUI is your top priority, you might want to give this technique a try.

源码图片

点击链接查看大图
从本站下载附件及源代码(1个附件,已经成功下载1360次)

最值得关注的外文源代码

An Alternate Way of Writing a Multithreaded GUI in C#
Very fast table copy from an ODBC source into MS Access within a C# project
Fast List Data Structure Source Code
Fast Image Rotation For .NET Compact Framework
评论(评论是增加积分的一个有效途径)
字数在300字内
请如实评论
本源代码共评论278次,此处显示最近20次评论! 查看所有评论

何事秋风悲画扇  2017年12月15日
学习学习 十分不错
何事秋风悲画扇  2017年12月15日
还是不错的 66666
lf8013  2017年08月24日
演示效果非常好,还没有看明白,有空才慢慢研究一下,谢谢分享
lf8013  2017年08月24日
演示效果非常好,还没有看明白,有空才慢慢研究一下,谢谢分享
goodliness  2017年04月16日
好好学习一下
小菜  2016年03月28日
学习一下!
Anyou2010  2015年08月04日
下载看看,学习学习。。。看起来还不错的样子!
reixuemin  2015年05月28日
学习学习
fresh  2015年04月07日
学习学习
酷哥  2014年12月19日
好好研究一下
酷哥  2014年12月19日
好好研究一下
lianjing  2014年04月20日
先收下,学习
zczhangchi  2013年12月04日
学习了
牛牛果冻  2013年10月18日
学习了
lgzzzz  2013年08月19日
比较支持这个
飞扬的枫  2013年07月24日
比较支持这个
xiaoyu3523663  2013年07月04日
不错的说
zy263  2013年06月11日
good
jingxin  2013年03月23日
使用了CheckForIllegalCrossThreadCalls = false;直接在线程中操作控件。
leihm_plum  2013年03月22日
good
字数在300字内
请如实评论
200万国内源码搜索
CopyRight (C) codesoso.com 2007-2009 All Rights Reserved zhihuishi   免责声明