gpt4 book ai didi

iOS 如何执行多个 NSInputStream

转载 作者:行者123 更新时间:2023-12-01 18:09:58 25 4
gpt4 key购买 nike

我的应用程序使用 NSInputStream,如下所示:

inputStream.delegate = self;
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[readStream open];

并委托(delegate):
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent

它工作正常,但我做的所有其他请求,它排队直到第一个完成。
我一次可以做一个,没有办法做多个并发请求。

有解决办法吗?
谢谢

这个解决方案对我不起作用:
https://stackoverflow.com/a/15346292/1376961

更新:
我的服务器是否无法处理来自同一来源的多个连接。

最佳答案

您将需要在单独的线程中创建流以使它们能够同时工作。我假设您有一个方法可以设置您提到的 inputStream:

- (void)openStreamInNewThread {
[NSThread detachNewThreadSelector:@selector(openStream) toTarget:self withObject:nil];
}

- (void)openStream {
NSInputStream *inputStream;

// stream setup

[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSRunLoopCommonModes];
}

请注意 [NSRunLoop currentRunLoop]将返回当前线程的运行循环。因此,您让新创建的流在单独的线程中运行,同时在它们自己的线程中加载数据。

关于iOS 如何执行多个 NSInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33587831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com