0

ASP .netプロジェクトで作業しています。私は2ページあります。最初のページでは、私は次のコードで別のブックマークを再開するために、インスタンスストアから同じワークフローを再ロードしようとしていますWebForm1に次のページに続いて新しいワークフロー2つのaspxページでワークフローを読み込みます。

  var connStr = @"Data Source=M-PC\SQLEXPRESS;Initial Catalog=sella;Integrated Security=True;Pooling=False"; 
     AutoResetEvent syncEvent = new AutoResetEvent(false); 
     var store = new SqlWorkflowInstanceStore(connStr); 
     var app = new WorkflowApplication(new Activity1() { str = 4 }); 
     app.InstanceStore = store; 

     app.Idle = delegate(WorkflowApplicationIdleEventArgs o) 
     { 

      syncEvent.Set(); 
     }; 

     app.Unloaded = (workflowApplicationEventArgs) => 
     { 
      syncEvent.Set(); 
     }; 

     app.Run(); 
     syncEvent.WaitOne(); 

     string text = TextBox3.Text; 
     app.ResumeBookmark("readText", text); 
     syncEvent.WaitOne(); 
     app.Unload(); 
     syncEvent.WaitOne(); 
     Response.Redirect("WebForm1.aspx"); 

を作成し、次のコードを持っています。

  var connStr = @"Data Source=M-PC\SQLEXPRESS;Initial Catalog=sella;Integrated Security=True;Pooling=False"; 
     AutoResetEvent syncEvent = new AutoResetEvent(false); 
     var store = new SqlWorkflowInstanceStore(connStr); 
     var app = new WorkflowApplication(new Activity1()); 
     app.InstanceStore = store; 

     app.Idle = delegate(WorkflowApplicationIdleEventArgs o) 
     { 

      syncEvent.Set(); 
     }; 
     app.Completed = delegate(WorkflowApplicationCompletedEventArgs o) 
     { 
      syncEvent.Set(); 
     }; 

     id = new Guid(TextBox2.Text.ToString()); 
     app.Load(id); 
     syncEvent.WaitOne(); 
     app.Run(); 
     syncEvent.WaitOne(); 

     string text = TextBox1.Text; 
     app.ResumeBookmark("readText1", text); 
     syncEvent.WaitOne(); 

しかし、私はワークフローを実行すると何も起こりません。誰もそれにアプローチする方法はありますか?お時間のためのTHX

答えて

2

あなたに一度獲得したワークフローをロードされた最初のWAITONEに阻止されますように見えます。あなたが最初のウェイトを削除する場合tはアイドル行く

を開始するまでは、ワークフローの実行をしていますか?

+0

これはどちらですか? – pikk

+0

ええ、あなたは正しいです。 :) – pikk

関連する問題