Hosting windows workflow
===

I am pretty new to WF, I was going through the samples and code over the web. I found that we can host a workflow outside outside of WF, there are some standard code sample for that, which use a autoreset event... 
I was curious, specially on do I need to host the workflow everytime some action take place. 
e.g, I saw a calculator application in that application author is calling the CreateWorkFlow code, while passing a different arguement. I tried to find out if I can some how store ccreateworkflow instace retrun value, and than pass parameters to it. However I did not find any way to pass param again. The only thing i found over the web is to CreateWorkFlow every time I need to pass params to it.

    WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(Workflow1),params1);
    instance.Start();

I was thinking about the cost of CreateWorkFlow, is it too much performance cost to create workflow ?
 Is this the standard practice ? Do i need to create it every time or Am I missing something here..

               