- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我异步调用一个方法时(使用模式 BeginXxx/EndXxx),我在调用 BeginXxx 后得到一个 IAsyncResult
结果。如果方法 BeginXxxx 或 EndXxx 均未引用结果变量,属性“isCompleted”(在返回的结果变量中)如何更新?
例如:
// Create the delegate.
AsyncMethodCaller caller = new AsyncMethodCaller(ad.TestMethod);
// Initiate the asychronous call.
IAsyncResult result = caller.BeginInvoke(3000, out threadId, null, null);
// Poll while simulating work.
while(result.IsCompleted == false) {
Thread.Sleep(250);
Console.Write(".");
}
最佳答案
BeginInvoke
向您返回 IAsyncResult
,因此它将具有对它的引用。这将在内部创建并发回给您。
例如FileStream中的BeginRead
创建FileStreamAsyncResult
然后返回:
private unsafe FileStreamAsyncResult BeginReadCore(byte[] bytes, int offset, int numBytes, AsyncCallback userCallback, object stateObject, int numBufferedBytesRead)
{
NativeOverlapped* overlappedPtr;
FileStreamAsyncResult ar = new FileStreamAsyncResult {
_handle = this._handle,
_userCallback = userCallback,
_userStateObject = stateObject,
_isWrite = false,
_numBufferedBytes = numBufferedBytesRead
};
ManualResetEvent event2 = new ManualResetEvent(false);
ar._waitHandle = event2;
.....
if (hr == 0x6d)
{
overlappedPtr->InternalLow = IntPtr.Zero;
ar.CallUserCallback();
return ar;
}
关于c# - IAsyncResult 的属性isCompleted 是如何更新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9603893/
我有一个习惯应用程序,用户可以添加不同类型的新习惯并将习惯标记为已完成/未完成。 Habits fragment 使用筹码显示具有两种不同习惯类型“积极”和“消极”的习惯,因此当用户检查积极筹码时,r
我正在查看 System.Threading.Tasks(.NET 标准 2.0)中 Task 的一些实现细节,我发现了这段有趣的代码: internal volatile int m_stateFl
以下代码有一个错误:result 不包含任何状态; IsCompleted、IsCanceled 和IsFaulted 总是错误的,但是我测试了Task 可以正常工作,哪里有问题? var resul
我在使用 .Net 4 类 System.Threading.Tasks 时遇到了一些策略行为。这个例子最好地证明了这一点: var t = FunctionThatReturnsTaskAsync(
我找到了这段代码: Task task = DoSomethingAsync( someObject ); await task.ConfigureAwait( false ); if ( task.
我不断收到此错误“找不到符号 - 方法 isCompleted()”,但我已经声明了它。我做错了什么??? private boolean isCompleted; public boolean is
我在我的 android 应用程序中使用 Firebase。在我的注册方法中,我使用了 createUserWithEmailAndPassword() 方法。为了检查我的注册过程是否成功,我正在使用
以下代码永远不会返回。调试显示,即使队列为空,queue.IsCompleted 也会返回 false。我错过了什么吗? var workers = new Task[1]; using (var q
类(class)RunningJob有几种抛出 IOException 的方法(大概是当与 Hadoop 的连接失败时?)我现在正在查看的方法是 isComplete()。 处理此类错误的正确方法是什
除了 previous question ,我正在尝试自己实现带有步骤概述的 Wicket Wizard。现在的问题是,即使该步骤尚未完成,isComplete(); 似乎也会返回 true。我执行了
在这个例子中: http://doc.akka.io/docs/akka/snapshot/java/testing.html final Props props = Props.create(MyA
本文整理了Java中org.apache.zookeeper.client.ZooKeeperSaslClient.isComplete()方法的一些代码示例,展示了ZooKeeperSaslClie
Andreas Huber 对 this question 的回答给了我一个实现的想法 Concurrent使用异步委托(delegate)而不是线程池。但是,我发现很难理解 AsyncCallbac
我是一名优秀的程序员,十分优秀!