我想在点击按钮时创建无限循环。当我再次按下按钮时,循环将中断。我此刻做了类似的事。
- (IBAction)Butt_uruchom:(id)sender {
UIBarButtonItem *Button_Uruchom = (UIBarButtonItem *)sender;
NSString *title=Button_Uruchom.title;
if ([title isEqualToString:@"Start"])
{
Button_Uruchom.title = @"Stop";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
do{
[self WyslijZapytanie:@"010C1\r\n"];
}while([title isEqualToString:@"Stop"]);
});
}
else
{
Button_Uruchom.title = @"Start";
}
此代码在单击按钮时更改按钮标题。我想在按下Start时启动循环,在按下Stop时停止。我试图插入:
do{}while(title isEqualToString:@"Stop") in new Theard
在IF,但它不起作用。你能帮帮我吗? :)
答案 0 :(得分:0)
您无法在同一个线程上循环接收终止接收按钮事件。使用第二个线程。单击按钮启动线程。第二次单击停止线程。但总的来说,永远循环并浪费CPU cicles是不明智的。
答案 1 :(得分:0)
请看一下 Understanding dispatch_async
监视套接字,考虑在第二个线程中使用NSRunloop。 Runloop会让威胁进入睡眠状态,直到源(例如套接字)将事件发送到runloop