我有下面的代碼運行以啓動我的表計算(表計算引發了幾個查詢返回數千行)。當我的應用程序運行一個實例時,事情很好,但是2個或更多,然後服務器變慢,我開始出錯。在C中的多線程進程#
我應該把這段代碼變成線程嗎?這是如何完成的?
private static object _lock = new object();
private void RunTable(string outputType, string _outputDataType) {
Server.ScriptTimeout = 300;
string returnCode = string.Empty;
lock (_lock)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MainDll"].ToString()))
{
connection.Open();
using (SqlCommand command = new SqlCommand(sql.ToString(), connection))
{
command.CommandType = CommandType.Text;
command.CommandTimeout = 300;
returnCode = (string)command.ExecuteScalar();
Dispose();
}
Dispose();
}
}
首先:如果您看到錯誤,請告訴我們您看到的錯誤。第二:你讀的數據量是多少(即你可以將所有數據加載到RAM中)? – Kiril
對於快速,簡單和高效的多線程,您可以使用BackgroundWorker類http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx,但我的猜測是,您可能會遇到一些問題用你查詢數據庫的方式,或者你需要一些SQL調優。 –
當你說「一個實例/兩個實例」時,你的意思是進程或線程? – eyossi