挂起主线程,执行一些回调,然后恢复主线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了挂起主线程,执行一些回调,然后恢复主线程相关的知识,希望对你有一定的参考价值。
我需要做一些事情,执行一些回调事件,然后恢复我的例程。我给你写一个小例子。
void Do()
{
DoPartOne();
DoPartTwo();
}
void DoPartOne()
{
StaticClass.Property = null;
}
void DoPartTwo()
{
StaticClass.Property = something...
}
void MyCallBackOnEvent(MyEvent)
{
if(StaticClass.Property == null)
DoThis();
else
DoThat();
}
第一方,我的客户向服务发送命令,它以一些可变数量的事件响应我...。我需要首先执行PartTwo()方法的回调,但是我修复了该回调在完成后执行的情况Do()方法。您是否建议我其他实现?
答案
执行您的操作,然后等待变量变为true:
while(!workIsDone)
{
Thread.sleep(100);
}
然后在您的事件中,在事件中设置变量,如下所示:
void MyCallBackOnEvent(MyEvent)
{
// Event has fired, so we can set workIsDone to true and then the main thread will stop the while loop, and continue normally.
workIsDone = true;
}
以上是关于挂起主线程,执行一些回调,然后恢复主线程的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程协程的挂起和恢复 ② ( 协程挂起 和 线程阻塞 对比 )