首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏林德熙的博客

    C# 将 Begin 和 End 异步方法转 task 异步

    ., AsyncCallback asyncCallback, object state) 在 End 的方法一般都是这样写的 返回值 EndFoo (IAsyncResult asyncResult) ; 先调用 Begin 方法传入参数,拿到了 IAsyncResult 用于传入 EndFoo 作为参数,同时在 AsyncCallback 可以传入方法完成的方法 在 FromAsync 写起来是相反的 这样就可以拿到 EndRead 的返回值 在 FromAsync 的第一个参数传入的是 BeginRead 方法,第二个参数是 EndRead 方法,然后加上的 BeginRead 方法需要传入的参数,传入除了 AsyncCallback fileStream.BeginRead, fileStream.EndRead, buffer, 0, 1024, null); 也就是有 IAsyncResult BeginFoo(参数 参数1, 参数 参数2..., AsyncCallback asyncCallback, object state) 这个方法,那么在转 async 和 await 异步,可以使用下面代码 Task<返回值参数>.Factory.FromAsync(foo.BeginFoo

    98020编辑于 2022-08-04
  • 来自专栏葡萄城控件技术团队

    使用 IAsyncResult 进行 .NET 异步编程

    BegingXXX()的参数是在XXX()的参数基础上增加 AsyncCallback 和 AsyncState。 EndXXX()的返回值和XXX()的返回值是一样的。 asyncDelegate = new AsyncMethodCaller(Run); public IAsyncResult BeginRun(object param1, object param2, AsyncCallback asyncCallBack, Object asyncState) { asyncDelegate.BeginInvoke(param1, param2, callBack, stateObject 使用 AsyncCallback 委托结束异步操作。 就是在代理里面根据具体情况调用Endxxx()方法来让调用线程继续运行。 Public void MainFunc() { AsyncCallback callBack = new AsyncCallback(ProcessRun); IAsyncResult

    1K101发布于 2018-01-10
  • 来自专栏大内老A

    WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel

    callback, object state); 13: IAsyncResult BeginClose(TimeSpan timeout, AsyncCallback callback, BeginOpen(TimeSpan timeout, AsyncCallback callback, object state); 16: void Close(); 17: callback, object state); 5: IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback state); 7: IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object callback, object state); 5: IAsyncResult BeginReceiveRequest(TimeSpan timeout, AsyncCallback

    1.9K60发布于 2018-01-16
  • 来自专栏liulun

    通过异步方式发送和接收数据(tcp异步收发数据)

    while (isExit == false) { allDone.Reset();//将事件状态设置为非终止状态 AsyncCallback callback = new AsyncCallback(acceptTcpClientCallBack); listBox1.Invoke(setListCallBack EventArgs e) { client = new TcpClient(AddressFamily.InterNetwork); AsyncCallback requestCallBack = new AsyncCallback(this.requestCallBack);//引用在相应异步操作完成时调用的方法 allDone.Reset Encoding.UTF8.GetBytes(str + "\r\n"); netStream.BeginWrite(bytesdata, 0, bytesdata.Length, new AsyncCallback

    2.1K30编辑于 2022-05-09
  • 来自专栏大内老A

    WCF中的Binding模型之二: 信道与信道栈(Channel and Channel Stack)

    callback, object state); 14: IAsyncResult BeginOpen(TimeSpan timeout, AsyncCallback callback, object callback, object state); 20: IAsyncResult BeginClose(TimeSpan timeout, AsyncCallback callback, callback, object state); 6: IAsyncResult BeginOpen(TimeSpan timeout, AsyncCallback callback, callback, object state); 7: IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback callback, object state); IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback

    72820编辑于 2022-05-09
  • 来自专栏wfaceboss

    普通方法调用,Invoke,begininvoke三者的区别总结及异步与同步的区别总结

    (2)BeginInvoke(<输入和输出变量>,AsyncCallback callback,object asyncState)方法调用方法 则是启用了新的线程Id       属于异步 可通过 Thread.CurrentThread.ManagedThreadId     获取当前线程的Id *委托类型的BeginInvoke(<输入和输出变量>,AsyncCallback callback,object asyncState)方法  异步调用的核心, BeginInvoke 第二个参数(AsyncCallback callback):回调函数,表示异步调用后自动调用的函数 ,共用一个线程id.  AsyncCallback是一个委托   有一个参数(asyncState ) 第三个参数(object asyncState):用于向回调函数提供参数信息。

    1.7K20发布于 2019-04-08
  • 来自专栏全栈程序员必看

    C 异步调用

    BeginXXX 函数返回一个 IAsyncResult 接口,并分别接受 AsyncCallback 和一个对象,作为其最后两个输入参数。 它将传入的请求还原序列化到要传递到函数的参数中(与处理同步请求时一样);但是它还将指针传递到一个内部回调函数(作为 BeginXXX 方法的额外 AsyncCallback 参数)。    对 UserInfoQuery 的调用被异步执行,并被传递到 AsyncCallback 函数,后者被传递到 BeginGetAge 方法。这将导致当后端请求完成时,调用内部回调函数。 section=dotnet&id=887a74f8-e8dc-4b67-8072-bc45da89facb 一 定义AsyncCallback 委托 private AsyncCallback CallbackHandler ; 初始化必须在窗体的实例函数里(最好构造函数) CallbackHandler = new AsyncCallback(MyCallback); (自己做的实例就是因为在这样定义 private AsyncCallback

    2.1K10编辑于 2022-09-18
  • 来自专栏木宛城主

    ASP.NET那点不为人知的事(四)

    GetBytes("Hello World"); newConnectin.BeginSend(msg, 0, msg.Length, SocketFlags.None, new AsyncCallback int i = 0; i < MaxConnectionHandlers; i++) { listenSocket.BeginAccept(new AsyncCallback 注意这儿的异步调用(new AsyncCallback(Program.CloseConnection))使用了一个关闭连接的回调方法,因为为了让服务器更加高效,让侦听线程在EndSend等待是没有任何意义的

    60770发布于 2018-01-11
  • 来自专栏鸿蒙开发笔记

    鸿蒙HarmonyOS AVSession开发指南~

    (state: AVPlaybackState, callback: AsyncCallback<void>): void设置会话播放状态信息setLaunchAbility(ability: WantAgent , callback: AsyncCallback<void>): void设置启动abilitygetController(callback: AsyncCallback<AVSessionController >): void获取当前会话自身控制器getOutputDevice(callback: AsyncCallback<OutputDeviceInfo>): void获取音频输出设备信息activate (callback: AsyncCallback<void>): void激活会话destroy(callback: AsyncCallback<void>): void销毁会话开发步骤1.导入模块接口 AsyncCallback<void>): void发送控制命令sendSystemAVKeyEvent(event: KeyEvent, callback: AsyncCallback<void>):

    68920编辑于 2024-07-17
  • 来自专栏逸鹏说道

    C#异步调用的方法

    MethodName); //输出参数 int i; //实例化回调方法 //把AsyncCallback 看成Delegate你就懂了,实际上AsyncCallback是一种特殊的Delegate,就像Event似的 AsyncCallback acb = new AsyncCallback ; ///

    /// Callback method must have the same signature as the /// AsyncCallback Asyncdelegate isgt = new Asyncdelegate(icpInfo.Insert); IAsyncResult ar = isgt.BeginInvoke(new AsyncCallback

    2.3K60发布于 2018-04-10
  • 来自专栏全栈程序员必看

    C#异步调用的方法

    MethodName); //输出参数 int i; //实例化回调方法 //把AsyncCallback 看成Delegate你就懂了,实际上AsyncCallback是一种特殊的Delegate,就像Event似的 AsyncCallback acb = new AsyncCallback ///

    /// Callback method must have the same signature as the /// AsyncCallback Asyncdelegate isgt = new Asyncdelegate(icpInfo.Insert); IAsyncResult ar = isgt.BeginInvoke(new AsyncCallback

    1.7K10编辑于 2022-07-15
  • 来自专栏程序猿讲故事

    ZooKeeper异步调用命令

    createMode, StringCallback cb, Object ctx); StringCallback的定义 interface StringCallback extends AsyncCallback , ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL, nodeCreateCallback, data); } AsyncCallback.StringCallback nodeCreateCallback = new AsyncCallback.StringCallback() { public void processResult(int rc, String ; log.error("create node error", e); } } }; 4 异步回调接口定义 ZooKeeper在org.apache.zookeeper.AsyncCallback

    1K30发布于 2019-09-26
  • 来自专栏wfaceboss

    c#异步编程

    谁先出结果谁先出来 声明委托 根据委托定义实现方法 异步调用 : (1)     创建委托变量并指向具体方法(代表方法) **通过委托异步调用方法: *委托类型的BeginInvoke(<输入和输出变量>,AsyncCallback 第二个参数(AsyncCallback callback):回调函数,表示异步调用后自动调用的函数。 AsyncCallback是一个委托 第三个参数(object asyncState):用于向回调函数提供参数信息。返回值:IasyncResult:异步操作状态接口,封装了异步执行中的参数。

    1.4K30发布于 2019-04-08
  • 来自专栏hbbliyong

    使用委托实现同步回调与异步回调

    MethodDelegate result = AddTwoNumbers; //引用异步操作完成时调用的方法 AsyncCallback callback = new AsyncCallback(ResultCallback); Console.WriteLine("开始异步调用"); 接下来,定义一个类型为AsyncCallback的委托。AsyncCallback是引用某个方法的委托,当异步操作完成时调用该方法。

    4.2K60发布于 2018-03-05
  • 来自专栏大内老A

    [WCF-Discovery]如何利用”发现代理”实现可用服务的实时维护?

    Probe) 14: protected abstract IAsyncResult OnBeginFind(FindRequestContext findRequestContext, AsyncCallback //Resolve 18: protected abstract IAsyncResult OnBeginResolve(ResolveCriteria resolveCriteria, AsyncCallback DiscoveryMessageSequence messageSequence, EndpointDiscoveryMetadata 23: endpointDiscoveryMetadata, AsyncCallback Probe) 18: protected override IAsyncResult OnBeginFind(FindRequestContext findRequestContext, AsyncCallback Resolve 32: protected override IAsyncResult OnBeginResolve(ResolveCriteria resolveCriteria, AsyncCallback

    91490发布于 2018-02-07
  • 来自专栏林德熙的博客

    asp dotnet core 提示 Cannot access a disposed object 解决方法

    System.IO.FileStream.BeginRead(byte[] array, int offset, int numBytes, AsyncCallback callback, object System.IO.FileStream.BeginRead(byte[] array, int offset, int numBytes, AsyncCallback callback, object <BeginEndReadAsync>b__48_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, object state System.Threading.Tasks.TaskFactory<TResult>.FromAsyncTrim<TInstance, TArgs>(TInstance thisRef, TArgs args, Func<TInstance, TArgs, AsyncCallback

    3K30发布于 2020-02-17
  • 来自专栏smh的技术文章

    IHttpAsyncHandler实现广播功能

    CometAsyncHandler:IHttpAsyncHandler { public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback WebAsynResult : IAsyncResult { bool _IsCompleted = false; private HttpContext context; private AsyncCallback cb; private object extraData; public WebAsynResult(HttpContext context, AsyncCallback cb, object

    59850发布于 2019-05-08
  • 来自专栏HarmonyOSNext

    鸿蒙开发:Calendar Kit日历管理

    相关方法如下: createCalendar(calendarAccount: CalendarAccount, callback: AsyncCallback<Calendar>): void createCalendar (calendarAccount: CalendarAccount): Promise<Calendar> deleteCalendar(calendar: Calendar, callback: AsyncCallback <void>): void deleteCalendar(calendar: Calendar): Promise<void> getCalendar(callback: AsyncCallback <Calendar>): void getCalendar(calendarAccount: CalendarAccount, callback: AsyncCallback<Calendar>): : CalendarAccount): Promise<Calendar> getAllCalendars(callback: AsyncCallback<Calendar[]>): void getAllCalendars

    63700编辑于 2024-12-24
  • 来自专栏微卡智享

    Android里用AsyncTask后的接口回调

    视频效果 代码演示 我们用Android Studio新建一个AsyncCallBack的项目,我们建一个输入数字计算它的N次方得到的结果,在计算的过程中用AsyncTask进行处理,得到的结果通过回调函数在主界面 callback package dem.vac.asynccallback; /** * 作者:Vaccae * 邮箱:3657447@qq.com * 创建时间:2019-03-18 10: ); } ---- AsyncTask 然后再做AsyncTask的异步计算,这里面我们加了一个ProgressDialog,用于在计算过程中显示 CalcNum类 package dem.vac.asynccallback 完整代码 package dem.vac.asynccallback; import android.support.v7.app.AppCompatActivity; import android.os.Bundle

    1.7K40发布于 2019-07-25
  • 来自专栏函数式编程语言及工具

    Akka(24): Stream:从外部系统控制数据流-control live stream from external system

    The [[invoke()]] method of the returned * [[AsyncCallback]] is safe to be called from other threads reused within the same [[GraphStageLogic]]. */ final def getAsyncCallback[T](handler: T ⇒ Unit): AsyncCallback [T] = { new AsyncCallback[T] { override def invoke(event: T): Unit = interpreter.onAsyncInput GraphStageLogic.this, event, handler.asInstanceOf[Any ⇒ Unit]) } } getAsyncCallback把一个函数T=>Unit变成了异步运算函数并通过AsyncCallback 下面是getAsyncCallback的一个用例:  //external system object Injector { var callback: AsyncCallback[String]

    885100发布于 2018-01-05
领券