搜索
bottom↓
回复: 15

c#多线程中,一个正在运行的线程如何保证另一个线程也执行其中一部分?

[复制链接]

出0入0汤圆

发表于 2019-7-9 01:05:44 来自手机 | 显示全部楼层 |阅读模式
如题,请提供下解题思路。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2019-7-9 08:28:50 来自手机 | 显示全部楼层
说实话,没看懂你想表达的意思……你是说代码共用,还是同一个代码创建新的线程?

出0入0汤圆

发表于 2019-7-9 09:25:41 | 显示全部楼层
多线程都有线程等待的,停那等另一个线程操作

出20入62汤圆

发表于 2019-7-9 09:28:48 | 显示全部楼层
多线程了都。一个等另外一个会不会有点低效率啊。~

出0入0汤圆

发表于 2019-7-9 09:31:55 | 显示全部楼层
线程之间,实现互相之间通信,不就好咯。

出0入0汤圆

发表于 2019-7-9 11:17:36 | 显示全部楼层
最金剛好有看到...task.yield 看看是不是你要的

出0入0汤圆

发表于 2019-7-9 11:56:04 | 显示全部楼层
这个可能要牵扯资源共享问题,比如用LOCK 在线程竞争的时候要锁定一段代码,在出现竞争的时候保证只有一个线程进入这段代码在运行。

出0入0汤圆

发表于 2019-7-9 11:57:25 | 显示全部楼层
应用是资源共享的问题吧

出0入0汤圆

发表于 2019-7-9 13:41:26 | 显示全部楼层
锁住共享资源,或者每个线程拷贝一份资源。

出0入36汤圆

发表于 2019-7-9 16:55:11 | 显示全部楼层
楼主,不同线程是不会交叉的,你是不是有变量要等某一线程处理完再用另外一个线程处理?

出0入0汤圆

 楼主| 发表于 2019-7-9 22:58:17 | 显示全部楼层
XA144F 发表于 2019-7-9 08:28
说实话,没看懂你想表达的意思……你是说代码共用,还是同一个代码创建新的线程? ...

一个发数据线程,需要在另一个接收线程里执行一个event.set()。但执行发送线程的时候,接收线程没有运行。。。不知道是什么原因

出0入0汤圆

 楼主| 发表于 2019-7-9 22:59:30 | 显示全部楼层
zyqcome 发表于 2019-7-9 09:25
多线程都有线程等待的,停那等另一个线程操作

是waitone吗?

出0入0汤圆

发表于 2019-7-9 23:06:12 | 显示全部楼层

要相信网络

https://www.cnblogs.com/JoeSnail/p/7155815.html

MSDN应该也有不少的实现,

我不怎么喜欢多线程,调试起来很麻烦,多线程里动界面的控件就更麻烦,要不试一试转化为事件处理

出0入0汤圆

 楼主| 发表于 2019-7-9 23:08:07 | 显示全部楼层
catvevs 发表于 2019-7-9 11:56
这个可能要牵扯资源共享问题,比如用LOCK 在线程竞争的时候要锁定一段代码,在出现竞争的时候保证只有一个 ...

lock只是锁定在运行的线程中一部分代码吧。比如下面的代码中,如何执行到线程2的event.set();
public void 线程1()
{
        lock(thisLock)
        {

        }
}

public void 线程2()
{
        event.set();
}

出0入0汤圆

发表于 2019-7-10 09:51:39 | 显示全部楼层
查一下 ManualResetEvent  。   1线程Reset(),然后 WaitOne(),关门等待。2线程Set(),开这道门 ,1线程执行WaitOne()后面的代码。

出0入0汤圆

 楼主| 发表于 2019-7-11 00:38:27 | 显示全部楼层
catvevs 发表于 2019-7-10 09:51
查一下 ManualResetEvent  。   1线程Reset(),然后 WaitOne(),关门等待。2线程Set(),开这道门 ,1线程执 ...

我用的是AutoResetEvent,故障依旧。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 12:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表