只需要将调用服务的操作放到其他线程中处理就可以解决这个问题。
比如:
实现代码如下:
Thread ServiceThread=null;
public void TestForm_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
ServiceThread = new Thread(new ThreadStart(RegService));
ServiceThread.Start();
}
private void RegService()
{
//这里实现注册服务调用服务操作
}
注意:开启了线程要记得关闭,不然当关闭该窗体时其主进程关不掉,因为还有线程存在。可以在FromClosed()方法里将该线程关闭。
实现代码如下:
private void TestForm_FormClosed(object sender, FormClosedEventArgs e)
{
ServiceThread.Abort();
Application.Exit();
}
以上就是【WinForm窗体调用WCF服务窗体卡死问题】的全部内容了,欢迎留言评论进行交流!