【发布时间】:2014-03-21 20:47:27
【问题描述】:
从现在开始我是异步编码的初学者,我只是看不出在这个例子中我能做什么。
我有两个项目,一个有与某个服务通信的类,另一个是 WinForms 项目。
所以我在另一个项目的 WinForms 中有一个引用,它允许我创建 Client 对象的实例以按照我的意愿使用它。
问题是,因此,我无法使用 System.Windows.Forms.MessageBox。
然后,我会在 Form 类中使用 try...catch,但是... 现在的问题是我无法获取异常,系统只是不抓取它并继续执行直到应用程序本身崩溃。
所以,这是我的小项目,其中包含用于包装连接到服务器的逻辑的类。
(ps.:当我指的是项目时,我的意思是我在 Visual Studio 2013 中有一个解决方案,其中包含两个项目,一个类库和一个 Win Forms 应用程序)
public class Client
{
public Client(string host, int port)
{
Host = host;
Porta = port;
Client = new TcpClient();
Connect();
}
public string Host { get; set; }
public int Port { get; set; }
public TcpClient Client { get; set; }
private async void Connect()
{
await Client.ConnectAsync(Host, Port);
}
}
这是另一个带有主窗体的项目。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
Client client = new Client("localhost", 8080);
}
catch (SocketException socketException)
{
MessageBox.Show(socketException.Message);
}
}
}
【问题讨论】:
标签: c# winforms asynchronous exception-handling