我知道几乎没有类似的问题,但在所有情况下答案都是让它异步。
根据Apple文档(即使不推荐),polling是可用选项。但是,我无法实现它。
这是我的尝试
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循环之前(显然)完成此操作。