将NSOutputStream设置为同步

时间:2014-03-13 01:41:44

标签: ios asynchronous xamarin.ios synchronous

我知道几乎没有类似的问题,但在所有情况下答案都是让它异步。

根据Apple文档(即使不推荐),polling是可用选项。但是,我无法实现它。

  • 应该提一下我是在使用Xamarin在c#中做的,但是如果你 可以给我一个关于如何在Objective-C中做到这一点的答案 好的。

这是我的尝试

while(true)
  {
    if (outStream.HasSpaceAvailable())
      {
        int output = ((NSOutputStream)outStream).Write(data, (uint)data.Count());
      }
  }

这里的问题是outStream.HasSpaceAvailable()无限期错误。

我想同步执行此操作的原因:

目前(在测试应用程序中)我正在异步执行它,它适用于每次调用该方法时发送一个数据流。然而,在真正的应用程序中,我将需要一个接一个地发送大量的小数据包。因此,在发送另一个数据包之前,我需要等待数据发送。

如果我尝试对委托进行多次调用,则数据会覆盖之前的调用...

如果你能先让我知道如何同步做这件事会很棒(为了在那里有一个答案)。如果您认为有更好的方法以异步方式执行此操作,请告诉我。

由于

编辑: 以下是我设置会话的方法

SESSION=new EASession (Accessory, Protocol);
NSStreamStatus outputStream= SESSION.OutputSream;
outputStream.Open();

按下按钮并在上面的while循环之前(显然)完成此操作。

0 个答案:

没有答案