双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

什么情况下出现死锁???(线程)

l171147904 l171147904 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1,什么情况下出现死锁
2,以下代码 如何完善更好!
struct MyData
{
public string ip;
public string part;
public string time;
}
public void A()
{
Ds //数据源
foreach(DataRow dr in Ds.Tables[0].Rows)
{
MyData md = new MyData();
md.ip = dr["ip"].ToString();
md.part= dr["part"].ToString();
md.time= dr["time"].ToString();
ThreadPool.QueueUserWorkItem(new WaitCallback(JanitorMethod), md); //线程池
}
}

private Object lockObj = new Object();
private void JanitorMethod(object ob)
{

MyData de_All = (MyData)ob;
Thread.Sleep(Convert.ToInt32(de_All.time));
lock (lockObj)
{

try
{
SocketService ss = new SocketService(de_All.ip, de_All.part, false);
StringBuilder sb = new StringBuilder("12312313");
ss.Write_DoWork(sb.ToString()); // 执行函数不用理睬
}
catch (Exception err)
{
throw err;
}

}
}
...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
l171147904
C# 111,129 成员 642,540 内容