我正在开发一个ASP .net项目。我有2页。在第一页中,我有以下代码,用于创建新的工作流程
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");
然后在下一页WebForm1中,我试图从实例存储重新加载相同的工作流,以便使用以下代码恢复另一个书签。
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();
但是当我执行工作流程时,没有任何反应。有没有人有任何想法如何处理它?感谢你的时间
答案 0 :(得分:2)
看起来你会在第一个WaitOne上阻塞,因为一旦加载工作流程就赢了; t闲置直到开始
如果删除第一个等待,工作流程是否会运行?