C#多线程,如何确保某些语句都被执行之后才执行其他线程 多线程c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://msdn.microsoft.com/zh-cn/library/ms173179.aspx参考 我昨天现学的多线程,这个效果既要等待,又不能阻塞主线程GUI界面响应,最后用了两条线程解决问题,先开一条线程A,然后从线程A再开线程B。线程B负债真正的费时工作,工作开始时加一个线程锁lock住,线程A在开启工作线程B后,等待500毫秒(保证线程B的lock已经锁住了),然后也进入lock代码,这样就造成了线程A的等待效果,待线程B完成后,线程A继续这样两条线程互相配合,效果还不错 thread.join啦,waithandle.wait啦等等。 最垃圾的,就是有些从java入门书籍上学了点“生产者消费者模式”的人说的什么“两个队列、两个线程”的做法。这往往是低效和低水平服务程序的根源。如果生产者通知系统它生产了一个东西,这个时候你的系统直接从线程池中分配一个子线程来处理这个东西,就行了。然后处理完这个东西,这个处理方法也就结束了。根本不存在什么“两个线程、两个队列”那回事。你可以看到,如果系统资源足够,可能一瞬间同时有20个线程在那里消费产品,可能另一个瞬间只有2个线程。这是自动化地。根本不是什么“一个消费线程、顺序处理消费队列”。其原则其实非常简单,就是线程中根本不需要什么while循环语句、阻塞语句之类的。如果一个线程没有事情可做,它就应该结束。搞懂这个原则,你才能够写出高效率的多线程处理程序。 也不能一棍子打死吧比如Unity3d里,要控制场景里的物体,代码必须放到主线程里,没有invork方法那么我必须保证负责通信的线程已经取到了数据并比较出差异,需要更新,才执行主线程里的方法总不能动态创建个主线程出来吧这个具体问题还是要具体分析 有些线程无法关闭,动态生成那么可以放到循环或timer里(Unity3d里是update),用变量控制方法执行或不执行其他线程处理好之后修改这个变量就行了 c#语言 ftp上传到linux上去 在查询数据的时候出来一个缓冲条 C#连接远程数据库 如何绑定设置menu。使点击时展开子菜单? 这种功能怎么实现呢 timer 和lable 的问题.大虾来啊.... 问个菜鸟及的问题! c#中如何获得一个窗体的多个menuitem事件的名称,并传递给另外的窗体 求透视变换及双线形插值的例子 关于Repeater控件中,得到DropDownList的值等一系列问题[专为此问题注册帐号,散分] c#局域网组播的诡异问题,求教了 在线阅读PDF文件, 加载太慢(急急急)
参考
比如Unity3d里,要控制场景里的物体,代码必须放到主线程里,没有invork方法
那么我必须保证负责通信的线程已经取到了数据并比较出差异,需要更新,才执行主线程里的方法
总不能动态创建个主线程出来吧
这个具体问题还是要具体分析
那么可以放到循环或timer里(Unity3d里是update),用变量控制方法执行或不执行
其他线程处理好之后修改这个变量就行了