2013-10-16 64 views
0

我想写一个代码,在其中我必须创建2个并行线程(在调度串行队列中运行)1线程将上载,另一个线程将从服务器下载文件。上传和下载进度都将在另一个屏幕上进行更新,并进行字节上传和下载。当我创建二级线程我的函数返回到调度串行队列并开始scehduled而不是等待2个当前并行任务的另一个系列任务iOS FTP并发上传和下载

  1. - :

    但我面临着一些奇怪的问题先完成。

  2. 一旦下载线程开始上传线程停止上传文件并在Writeto服务器期间返回-1。

我使用苹果SimpleFTP例子,并试图在2个并行线程1运行它是认沽和第二的GET。

任何想法,为什么上传下载时从服务器文件停止(我做了2个不同的connnections到FTP服务器以及)

提前感谢您的帮助。

+0

是否有任何理由不使用GCD + dispatch_semaphore_t变量的标准块? –

+0

串行队列中很少有其他任务发生(一个接一个地完成),并且这些任务应该顺序完成。这些串行队列是使用GCD本身创建的。对于这个FTP任务,我们必须创建2个并行线程,并且上传和下载都应该同时运行。我尝试了使用具有全局调度的GCD异步,但不是等待任务完成,原始主串行队列开始运行另一个任务这是需求.. – Dinesh

+0

更多更新在这..看起来像 - (无效)流:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode阻止另一个线程访问另一个类中的相同委托函数直到NSStream关闭不被调用。任何人都可以更多地了解这一点.. – Dinesh

回答

0

使用Syncronous FTP请求解决了该问题。运行循环运行函数阻止另一个线程调用流委托函数。