【发布时间】:2016-02-24 20:03:11
【问题描述】:
我正在尝试通过在循环中从网格视图中获取数据来创建一个异步函数来一一发送文本消息。
到目前为止,我所做的事情如下:
public async void asyncSmsSend()
{
try
{
btnSend.Content = "Sending...";
await sendSmsFunc();
btnSend.Content = "Sent";
}
catch (Exception)
{
throw;
}
}
private Task sendSmsFunc()
{
return Task.Factory.StartNew(() =>
{
try
{
srprt = new SerialPort(prt, 115200);
Thread.Sleep(1000);
srprt.Open();
Thread.Sleep(1000);
srprt.Write("AT+CMGF=1\r");
Thread.Sleep(1000);
srprt.Write("AT+CMGS=\"" +tbNmber.Text+ "\"\r\r");
Thread.Sleep(1000);
srprt.Write(tbMessage.Text + "\x1A");
Thread.Sleep(1000);
//btnSend.Content = "Sent";
srprt.Close();
}
catch (Exception ex)
{
//btnSend.Content = "Failed";
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
//btnSend.Content = "Send Again";
}
});
}
目前我只是试图通过从表单上的文本框中获取数据来发送异步消息,它给了我
“调用线程无法访问此对象,因为不同的线程拥有它” 因为我是这类编程的新手,需要帮助。
PS。在上述问题之后,我将不得不使用以下方法从 DataGridView 中一一获取值并异步发送消息。请告诉我如何使用循环。 谢谢
int i = dgvResults.SelectedIndex;
DataRowView v = (DataRowView)dgvResults.Items[i];
sIDCardNum = (string)v[0];
Name = (string)v[1];
Nmbr = (string)v[3];
Msg = (string)v[4];
【问题讨论】:
标签: wpf asynchronous sms async-await task