title: Passing a method signature using delegates to a thread
body: <p>In order to represent the method that executes on a thread I am using <code>
  ParameterizedThreadStart</code> and passing the name of the method.  In this case the method name is <code>SelectJob</code> and the instantiation is as follows:</p>
  
  <pre><code>ParameterizedThreadStart starter = new ParameterizedThreadStart(SelectJob);
  
  protected void SelectJob(object index)
  {
       ...
  }
  </code></pre>
  
  <p>In order to reuse a portion of code I would like, if possible, to store the method name in a variable but the IntelliSense shows the method signature for <code>ParameterizedThreadStart</code> as <code>ParameterizedThreadStart(void (object) target)</code> and I'm not sure how I could store this sort of value.  From <a href="http://msdn.microsoft.com/en-us/library/system.threading.parameterizedthreadstart.aspx" rel="nofollow">MSDN</a> I realize this is a delegate so after reading <a href="http://msdn.microsoft.com/en-us/library/ms173176%28v=vs.100%29.aspx" rel="nofollow">How to: Declare, Instantiate, and Use a Delegate</a> I tried to declare ...</p>
  
  <pre><code>delegate void Del(string str);
  Del selectDelegate = SelectJob;
  </code></pre>
  
  <p>... but since the <code>SelectJob</code> method is not static I am not able to do this.  Simply making the method static is not an easy option.</p>
  
  <p>Is there another way of making this declaration?</p>
  
  <p>Thanks!</p>