我有一个C#表单应用程序来发送CAN消息。
一开始,我启动一个监视传入消息的线程,并在DataGridView
上显示它们。
目前设置应用程序,以便用户可以一次发送一条CAN消息,并查看其响应。 所有这些都很好,而且可靠。
我的应用程序的第2阶段要求我自动发送完整的CAN消息列表。 为此,我需要发送一条CAN消息,等待它的响应,然后发送下一条消息。
如何监控接收线程,并停止发送功能足够长时间才能收到响应?
由于发送消息不在单独的线程中,Thread.Sleep(n)
将暂停整个程序。
答案 0 :(得分:0)
我的方法:
public class DataViewModel
{
public AsynchronousCommand Send;
public DataViewModel()
{
Send = new AsynchronousCommand(() =>
{
SendData();
});
}
private void SendData()
{
}
}
public class SomewhereInForm
{
private DataViewModel dataViewModel = new DataViewModel();
public SomewhereInForm()
{
dataViewModel.Send.Executed += SendOnExecuted;
}
private void SendOnExecuted(object sender, CommandEventArgs args)
{
}
private void DoSome()
{
dataViewModel.Send.DoExecute(new int());
}
}
1个命令的示例。您可以将命令放在List中,无论如何。
如果您不想构建自己的库巫婆命令,请使用:Commands in MVVM