这是错误,谁来帮忙解决下?Object synchronization method was called from an unsynchronized block of code

zhanggong66 2006-10-28 11:13:26
今天自己写一个简单的模拟线程池,遇到这样一个Object synchronization method was called from an unsynchronized block of code,解决不了,谁给解释一下?
下面是我的主要思路:

class concreteTask : task
{
public override void begin() //开始运行线程
{
try
{
threadmutex.ReleaseMutex();
}
catch (Exception e)
{
Console.WriteLine("线程调度失败!{0}", e.Message);
}
}
public override void run()
{
while (true)
{
threadmutex.WaitOne(); //等待新的调度进入
stat = true;
{
//TODO:在此提供具体的任务处理
}
stat = false;
// threadmutex.ReleaseMutex();
}
}
}
在线程池中我只要不断调用begin()就能取得一个线程执行一个任务

但在 threadmutex.ReleaseMutex()这一句总是出现 Object synchronization method was called from an unsynchronized block of code
...全文
856 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanggong66 2006-10-28
  • 打赏
  • 举报
回复
刚刚把MUTEX换成mannualresetevent来实现,程序正常运行啦。。。实在不明白这是为什么
zhanggong66 2006-10-28
  • 打赏
  • 举报
回复
那加上LOCK可以吗?效果还是一样啊
lizhizhe2000 2006-10-28
  • 打赏
  • 举报
回复
同步方法用同步调用
异步方法异步调用

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧