线程调用相关问题

annywoody 2014-03-10 11:42:14
在MainForm主线程中初始化一个Sip对象,由于Sip封装的特殊性,必须在其初始化线程中调用其方法。
现在需要一个定时器,定时调用Sip对象的Send()方法,请问怎么实现?
C#新手。。。。。。
...全文
232 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
annywoody 2014-03-10
  • 打赏
  • 举报
回复
引用 3 楼 nanfei01055 的回复:
Thread.sleep或Application.Dovents()自动判断时间
在MainForm中肯定不能Thread.sleep。。。
nanfei01055 2014-03-10
  • 打赏
  • 举报
回复
Thread.sleep或Application.Dovents()自动判断时间
annywoody 2014-03-10
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
既然已经创建了sip实例,那就放个timer,写上代码 sip.Send,不知道你所谓的封装性指什么
timer执行的sip.Send不是相当于另起一个线程了吗? sip比较特殊,必须在对象实例化线程中调用,不能跨线程
bdmh 2014-03-10
  • 打赏
  • 举报
回复
既然已经创建了sip实例,那就放个timer,写上代码 sip.Send,不知道你所谓的封装性指什么
annywoody 2014-03-10
  • 打赏
  • 举报
回复
引用 5 楼 wyd1520 的回复:
[quote=引用 楼主 annywoody 的回复:] 在MainForm主线程中初始化一个Sip对象,由于Sip封装的特殊性,必须在其初始化线程中调用其方法。 现在需要一个定时器,定时调用Sip对象的Send()方法,请问怎么实现? C#新手。。。。。。
Form主线程,那就是UI线程,你可以通过在窗体初构造函数里 SynchronizationContext xxx= SynchronizationContext.Current 把这个对象复给一个变量 然后通过在线程里调用 xxx.Post(SendBuff,参数) 抛给UI线程让他去执行SendBuff方法 在窗体里定义一个 void SendBuff(object obj) { Sip.Send() } [/quote] 好像不错的方法
annywoody 2014-03-10
  • 打赏
  • 举报
回复
引用 6 楼 dancingbit 的回复:
使用Invoke/BeginInvoke来调用
能否说的详细点?
dancingbit 2014-03-10
  • 打赏
  • 举报
回复
使用Invoke/BeginInvoke来调用
本拉灯 2014-03-10
  • 打赏
  • 举报
回复
引用 楼主 annywoody 的回复:
在MainForm主线程中初始化一个Sip对象,由于Sip封装的特殊性,必须在其初始化线程中调用其方法。 现在需要一个定时器,定时调用Sip对象的Send()方法,请问怎么实现? C#新手。。。。。。
Form主线程,那就是UI线程,你可以通过在窗体初构造函数里 SynchronizationContext xxx= SynchronizationContext.Current 把这个对象复给一个变量 然后通过在线程里调用 xxx.Post(SendBuff,参数) 抛给UI线程让他去执行SendBuff方法 在窗体里定义一个 void SendBuff(object obj) { Sip.Send() }

111,098

社区成员

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

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

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