Please see my comment to the question. The problem is not formulated to the detail allowing to decide finally.
Multithreading may have many different justification. In particular, you should call all methods which blocks or simply considerably delay the execution, in a separate (non-UI) thread.
More essentially, it can be required by logic. If you have some sequential processing, more or less independent in its logic, it should be a separate thread. The problem should be considered in a holistic way. Some algorithm working the best in a console-only application, will require a separate thread in a windowed UI, and so on.
[EDIT]
Please see some of my past answers on related topics:
One of the best ways to create a thread:
How to pass ref parameter to the thread[
^],
Change parameters of thread (producer) after it is started[
^],
MultiThreading in C#[
^];
throttling threads properly (Resume/Pause is deprecated as unsafe):
ManualResetEvent and AutoResetEvent in Thread[
^],
pause running thread[
^];
invocation to UI thread:
Control.Invoke() vs. Control.BeginInvoke()[
^],
Problem with Treeview Scanner And MD5[
^].
The topics I listed are practically the most important, when the UI is involved.
—SA