我有下面的代码运行以启动我的表计算(表计算引发了几个查询返回数千行)。当我的应用程序运行一个实例时,事情很好,但是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