WF4 Beta2增加了AsyncCodeActivity,在编写自定义活动时,可以实现Begin/End的异步执行方式。当异步操作执行时,不影响工作流中的其他活动,
但是工作流不会被持久化。

下面是例子:

namespace CaryAsync

{

    public sealed class FileWriter : AsyncCodeActivity

    {

        public FileWriter()

            : base()

        {

        }

 

        protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state)

        {           

            string tempFileName = Path.GetTempFileName();

            Console.WriteLine("Writing to file: " + tempFileName);

            FileStream file = File.Open(tempFileName, FileMode.Create);

            context.UserState = file;

            byte[] bytes = UnicodeEncoding.Unicode.GetBytes("123456789");           

            return file.BeginWrite(bytes, 0, bytes.Length, callback, state);

        }

 

        protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result)

        {           

            FileStream file = (FileStream)context.UserState;        

            try

            {

                file.EndWrite(result);

                file.Flush();               

            }

            finally

            {

                file.Close();               

            }

        }

    }

}

 

相关文章:

  • 2021-09-16
  • 2021-10-24
  • 2021-08-21
  • 2021-11-03
  • 2022-01-30
  • 2021-09-16
  • 2021-09-23
猜你喜欢
  • 2021-12-25
  • 2022-02-16
  • 2021-08-02
  • 2021-12-09
  • 2022-01-02
  • 2021-12-04
相关资源
相似解决方案