ranSelect

所属分类:C#编程
开发工具:Visual Basic
文件大小:173KB
下载次数:16
上传日期:2012-09-06 22:04:23
上 传 者johnnyxiao
说明:  C#四种方式实现对用户操作响应灵敏及可动态更新的窗体控件及其对比 随机抽奖应用为例 开发环境vs2010 timer,backGroundWorker,多线程,委托四种方式的对比: 1.4种方式都可以实现要求 可谓条条大路通罗马 2.多线程和委托需要强行禁用CheckForIllegalCrossThreadCalls,有可能存在运行安全问题,但目前还没遇到 3.timer的源代码最少最简单 其次是多线程 4.委托本质上还是要用到多线程 区别在于委托是通过消息和事件的方式同步协调线程之间的配合 Observer设计模式 5.多线程和委托需要自己处理资源释放 否则程序非正常退出时会仍然驻留内存 6.backGroundWorker看来是微软针对此要求度身定做的成熟组件,封装了线程、同步协调及资源释放,又没有运行安全问题的担心 7.性能哪个最好?有空导几万条数据再测试啦 4个源代码中 backGroundWorker的源代码是最完整的 还对既公平又高效的随机抽奖算法进行了一些探讨 详见源代码注释 其他3个源代码只实现基本要求
(random select user 4 diffrent way in c#2010)

文件列表:
ranSelectBackgroundWorker\ranSelectBackgroundWorker.sln (916, 2012-09-05)
ranSelectBackgroundWorker\ranSelectBackgroundWorker.suo (24576, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\bin\Debug\ranSelectBackgroundWorker.vshost.exe (11600, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\bin\Debug\ranSelectBackgroundWorker.vshost.exe.manifest (490, 2010-03-17)
ranSelectBackgroundWorker\WindowsFormsApplication6\frmMain.cs (7660, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\frmMain.Designer.cs (9925, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\frmMain.resx (6022, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache (4440, 2012-09-04)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache (6508, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\GenerateResource.read.1.tlog (1652, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\GenerateResource.write.1.tlog (5100, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ranSelectBackgroundWorker.csproj.FileListAbsolute.txt (4671, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ranSelectBackgroundWorker.exe (14848, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ranSelectBackgroundWorker.Form1.resources (180, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ranSelectBackgroundWorker.frmMain.resources (180, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ranSelectBackgroundWorker.pdb (36352, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ranSelectBackgroundWorker.Properties.Resources.resources (180, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\ResolveAssemblyReference.cache (7897, 2012-09-04)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\TempPE\Properties.Resources.Designer.cs.dll (4608, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6\obj\x86\Debug\WindowsFormsApplication6.csproj.FileListAbsolute.txt (1345, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6\Program.cs (700, 2012-09-06)
ranSelectBackgroundWorker\WindowsFormsApplication6\Properties\AssemblyInfo.cs (1398, 2012-09-04)
ranSelectBackgroundWorker\WindowsFormsApplication6\Properties\Resources.Designer.cs (2888, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6\Properties\Resources.resx (5612, 2012-09-04)
ranSelectBackgroundWorker\WindowsFormsApplication6\Properties\Settings.Designer.cs (1123, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6\Properties\Settings.settings (249, 2012-09-04)
ranSelectBackgroundWorker\WindowsFormsApplication6\ranSelectBackgroundWorker.csproj (3756, 2012-09-05)
ranSelectBackgroundWorker\WindowsFormsApplication6.suo (21504, 2012-09-05)
ranSelectDelegate\ranSelectDelegate.sln (914, 2012-09-05)
ranSelectDelegate\ranSelectDelegate.suo (25088, 2012-09-06)
ranSelectDelegate\WindowsFormsApplication7\bin\Debug\ranSelectDelegate.vshost.exe (11600, 2012-09-06)
ranSelectDelegate\WindowsFormsApplication7\bin\Debug\ranSelectDelegate.vshost.exe.manifest (490, 2010-03-17)
ranSelectDelegate\WindowsFormsApplication7\Class1.cs (2884, 2012-09-06)
ranSelectDelegate\WindowsFormsApplication7\frmMain.cs (3404, 2012-09-06)
ranSelectDelegate\WindowsFormsApplication7\frmMain.Designer.cs (9046, 2012-09-05)
ranSelectDelegate\WindowsFormsApplication7\frmMain.resx (5817, 2012-09-05)
ranSelectDelegate\WindowsFormsApplication7\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache (4440, 2012-09-05)
ranSelectDelegate\WindowsFormsApplication7\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache (6484, 2012-09-06)
ranSelectDelegate\WindowsFormsApplication7\obj\x86\Debug\GenerateResource.read.1.tlog (1102, 2012-09-05)
ranSelectDelegate\WindowsFormsApplication7\obj\x86\Debug\GenerateResource.write.1.tlog (3134, 2012-09-05)
... ...

C#四种方式实现对用户操作响应灵敏及可动态更新的窗体控件及其对比 随机抽奖应用为例 开发环境vs2010 timer,backGroundWorker,多线程,委托四种方式的对比: 1.4种方式都可以实现要求 可谓条条大路通罗马 2.多线程和委托需要强行禁用CheckForIllegalCrossThreadCalls,有可能存在运行安全问题,但目前还没遇到 3.timer的源代码最少最简单 其次是多线程 4.委托本质上还是要用到多线程 区别在于委托是通过消息和事件的方式同步协调线程之间的配合 Observer设计模式 5.多线程和委托需要自己处理资源释放 否则程序非正常退出时会仍然驻留内存 6.backGroundWorker看来是微软针对此要求度身定做的成熟组件,封装了线程、同步协调及资源释放,又没有运行安全问题的担心 7.性能哪个最好?有空导几万条数据再测试啦 4个源代码中 backGroundWorker的源代码是最完整的 还对既公平又高效的随机抽奖算法进行了一些探讨 详见源代码注释 其他3个源代码只实现基本要求 /* * 如需引用,请注明出处,谢谢! * If you need to quote please specify source, thanks! * * http://blog.csdn.net/johnnyxiao * johnnyxiao@163.com * 2012-09-05 * * Tag: timer,backGroundWorker,多线程,委托,源代码,随机抽奖,响应灵敏,动态更新 */

近期下载者

相关文件


收藏者