问题描述
小弟刚学C#,对于线程不是很理解,其中对一些数据的采集和实时更新UI界面(在datarecevie中如果一边接收数据一边处理会出问题)请大侠好好普及下这方面知识,最好举些简单的例子。
解决方案
解决方案二:
不用线程,用C#的委托1、委托程序privatevoidWriteLog(stringcontent){//内容自己写}2、委托手柄delegatevoidWriteLogHandle(stringcontent);3、委托使用方法this.Invoke(newWriteLogHandle(WriteLog),newobject[]{"开始监控"});
解决方案三:
线程+队列。可以去msdn上找定义或者例子
解决方案四:
线程中操作UI用委托
解决方案五:
多线程,在早期的操作系统是没有的,比如dos时代,只有一个进程。线程、进程是怎么回事?操作系统,是个最大的进程。比如Win7、XP,是通过硬件的固定引导扇区,加载启动,启动了Win7的第一个进程,这个进程如同女娲。然后,女娲造人一样,一个接着一个的创造出了其他进程。我们的代码,最终编译成为二进制文件,存放在磁盘的固定位置上。当我们双击鼠标时,向女娲报告,请求启动我们的程序,女娲同意,就会分出一个cpu时间片,启动我们的程序。这个启动者,是女娲手下的重臣(OS中的一个系统进程,负责掌控CPU时间片的分配),就是我们的主线程源头。因此,我们的进程启动,首先诞生的是主线程,主线程存在了,进程才算启动。进程是什么?女娲给我们的:内存空间、系统句柄、全局资源等等,放在一个内存空间里面(如同储物柜一样)。操作系统,这样的储物柜有上千万个,我们的所有操作,读取磁盘文件、打开声卡、读取网卡,都是在我们的柜子里面做,不许跑到其他柜子里,如何跑进去,这是黑客们感兴趣的话题。因此,我们可以简单理解:进程包含了一个放杂货的柜子,还有柜子里面的到处乱跑的线程。可以有多少个线程?以前的系统上限是1024个,目前的系统还不清楚。C#中,只有主线程允许访问窗口控件,窗口消息,其他线程是不允许访问的(特殊方法也可以访问,但微软不建议这么作,会有安全隐患)。因此,我们一般是用主线程访问UI操作,辅助线程做耗时操作(比如:数据库操作、耗时算法操作等)。
解决方案六:
多线程操作,是十分复杂的操作,一般是不采用多线程操作的,原因是,无序、混乱、同步艰难、状态锁难以维护、容器(List、Dic、Array等)难以维护。所以,我们看MSDN中的代码,经常可以看到,这个类不是线程安全的。这也需要我们写代码时,要报线程方案放在最后,能不用就不用。
解决方案七:
你对线程不是很了解。。我给你简单的说说吧。希望能帮到你。首先要了解单线程,所谓的单线程就比如:我开了一家组装车间,是流水线生产,车间1的工作完成了,车间2在开始完成,然后车间3.按照顺序。而多线程,在车间1生产的同时,车间2也会生产,不会等到车间1生产完毕他才生产。车间3同理。希望能帮助到你。
解决方案八:
委托,UI不用写太多操作,不然会卡死……