我正在使用 zkemkeeper SDK 来处理考勤机,它工作正常,但是当我连接时,它会挂起表单 UI,所以我开始使用 Async Task 来避免这个问题,但它不起作用,这是我的代码:
public async Task<bool> Connect()
{
await Task.Delay(5000);
await Task.Run(() => ZkemClientObj.Connect_Net(ip, port));
}
在任务延迟中,UI 没有被阻止,但是当我启动 Connect_Net 时,它会阻止 UI。我尝试了很多东西,它工作正常,但只有这个片段。
更新
这是连接按钮事件方法:
CZKEM ZkemClientObj = new CZKEM();
private async void MachineConnectionAction(object sender, EventArgs e)
{
var isConnected = await Connect();
if (isConnected)
{
UpdateConnectionStatus();
}
else
{
ShowErrorMessage();
}
}
public async Task<bool> Connect()
{
string ip = MachineIPAddress.Text.Trim();
int port = int.Parse(MachinePort.Text.Trim());
return await Task.Run(() => ZkemClientObj.Connect_Net(ip, port));
}