Thread problem,about Abort()

Can anybody help me? The deadline of my project is approaching, but this problem stuck me.
my ultimate task is to use the serialport in c#.Now I’m trying to create a thread that continuously read the serial port.
Actually I’m now just at the beginning, trying to test if a loop in a thread can work.
Here’s my problem:If I do not explicitly Abort() the thread before I click the arrow to end the program, the thread may seem unable to be closed. The fact is, I could not run the program again unless I restart Unity3d.`
the test code is here:
using UnityEngine;
using System.Collections;
using System;
using System.IO;
using System.IO.Ports;
using System.Threading;

public class TestThread2 : MonoBehaviour {
	//variables
	public int str;
	public int str2;
	Boolean Run=true;
	Thread t;
	float ThreadCount;

	// Use this for initialization
	void Start () {
	        t = new Thread(new ThreadStart(ThreadProc));
		t.Start();
		str=0;
		ThreadCount=10;

	}
	
	// Update is called once per frame
	void Update () {
		
		ThreadCount -= Time.deltaTime;
		if(ThreadCount<=0){
			t.Abort();
			Run=false;
		}
		
	
	
	}

//线程函数
	public void ThreadProc() {
		str=0;
		Run=true;
		while(Run){
			
	
		}
		

    }
}

I used a ThreadCount so the thread will Abort after a certain time. But if i exit the program before that span of time, the problem will appear.

From my personal experience, stay clear of threaded while loops in unity. I had exactly the same problem as you when I tried to maintain a dedicated worker thread.

My advice (if this is still relevant) is to create a threaded queue and use the threadpool. I’ve had very good results using this method.