C#线程问题

[复制链接]
查看11 | 回复0 | 2021-2-25 06:19:49 | 显示全部楼层 |阅读模式
c#调用c++库的一个方法Utils.Search。这个方法内会阻塞线程60秒。将这个方法调用放在线程中。怎么才能终止这个线程,终止后不执行SetResult方法
th=newThread(()=>
{
SetResult(Utils.Search(60));
});
th.IsBackground=true;
th.Start();
th.Abort();//终止线程

CancellationTokenSourcects=newCancellationTokenSource();
stringres="";
awaitTask.Run(()=>
{
timer.Start();
res=Utils.Search(60);
},cts.Token);
if(!cts.IsCancellationRequested)
{
SetResult(res);
}

使用场景是比如做扫码支付(微信和支付宝),生成微信二维码的同时去调查询,在这期间又点击了支付宝二维码,所以就需要将查询微信的那个线程停止掉(想的思路是这样。但是线程又不是说停就停的。不知道怎么搞了。。),有啥好的解决方法吗


分 -->
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行