c# 怎么实现线程同步,而不出现死锁的情况,lock的具体用法

最近做一个软件,需要线程同步,而不出现死锁,不并发操作,看了很多相关的资料,思绪很是凌乱,需要把思路整理哈,请那位大侠有个类似的经验告诉哈,小弟在这里不胜感激!... 最近做一个软件,需要线程同步,而不出现死锁,不并发操作,看了很多相关的资料,思绪很是凌乱,需要把思路整理哈,请那位大侠有个类似的经验告诉哈,小弟在这里不胜感激! 展开
 我来答
xinjun1000
推荐于2016-10-29 · TA获得超过173个赞
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:131万
展开全部
线程同步是指,两个或两个以上的线程访问同一资源时,需要线程同步你可以使用下面这个类;
Monitor.Enter(obj);
...
Monitor.Wait(obj);
中间的代码同时只允许一个线程访问,其他线程执行到Monitor.Enter(obj),就会自动挂起,带执行的线程释放排它锁后就允许线程队列的最后一个线程进入执行,同时获得排他锁。其实这和
lock(obj)
{
...
}
所起的效果一样。
xuzhenrao
2008-12-16 · 超过40用户采纳过TA的回答
知道答主
回答量:179
采纳率:0%
帮助的人:148万
展开全部
一般如果你几个线程并发执行的时候,
如果没有同时对某个资源进行访问时是不会出现死锁的,
但是,如果都需要访问主进程中的资源时,
最好把访问的代码放到lock{}里,
这样就不会出现同时访问而互相等待进而产生死锁
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lke820915
2008-12-16 · TA获得超过496个赞
知道小有建树答主
回答量:595
采纳率:0%
帮助的人:391万
展开全部
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
这样就可以调用多线程了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谢抢来
2008-12-16 · TA获得超过262个赞
知道小有建树答主
回答量:819
采纳率:0%
帮助的人:405万
展开全部
多线程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式