租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

QueueUserWorkItem() 和 BeginInvoke() 之间有什么不同

发布时间:2023-09-26 06:48:23

QueueUserWorkItem() 和 BeginInvoke() 之间有甚么不同

QueueUserWorkItem()和BeginInvoke()都是用来在线程池中履行拜托的方法,但它们有一些不同。

  1. 参数类型:QueueUserWorkItem()接受一个WaitCallback拜托作为参数,该拜托可以带有一个object参数;而BeginInvoke()接受一个拜托作为参数。
  2. 返回值:QueueUserWorkItem()没有返回值;而BeginInvoke()返回一个IAsyncResult对象,可以用于异步操作的状态和结果。
  3. 异步操作:QueueUserWorkItem()是一种普通的异步操作,将拜托放入线程池中履行,但不提供状态或结果的跟踪;而BeginInvoke()是一种更复杂的异步操作,可以通过IAsyncResult对象跟踪异步操作的状态和结果,并通过EndInvoke()获得终究的结果。
  4. 回调函数:QueueUserWorkItem()没有提供回调函数的功能;而BeginInvoke()可以传递一个回调函数作为参数,在异步操作完成后履行回调函数。

总的来讲,QueueUserWorkItem()是一种简单的异步操作方法,适用于不需要跟踪状态和结果的情况;而BeginInvoke()是一种更复杂的异步操作方法,适用于需要跟踪状态和结果,和履行回调函数的情况。