<p>I have some code for starting a thread on the .NET CF 2.0:</p>

<pre><code>ThreadStart tStart = new ThreadStart(MyMethod);
Thread t = new Thread(tStart);
t.Start();
</code></pre>

<p>If I call this inside a loop the items completely out of order. How do introduce a wait after <code>t.Start()</code>, so that the work on the thread completes before the code continues? Will BeginInvoke/EndInvoke be a better option for this than manually creating threads?</p>

If I'm reading this properly, you're starting work items on bunch of threads but you're concerned that the threads are completing out of order, and, would prefer to wait until each thread completes in the order they were started ?
If this is the case then I'm not sure why you're creating a thread per work item. Maybe you could expand?
If you did need to wait for a thread to complete the you could just do:
```
```
t.Join();
```
```