上下文切换问题 [英] Context switch problem

查看:167
本文介绍了上下文切换问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

先生或女士,

我是uday satardekar.
我将c夏普以xml格式绑定15000行,但是会引发上下文切换异常.

我的代码是:

Sir or Madam,

I am uday satardekar.
I am binding 15000 rows in xml format in c sharp but it throws Context switch exception.

My code is:

string XML_TRANSACTIONDETAILS = null;

long maxid = getMaxId();
string compName, email, email1, email2, Website, country, cntctPers, tel, mob, fax, region, category, urlcatlog, dataentrytype;
int status;

XML_TRANSACTIONDETAILS = "<master>";

//here  excelRows=15000;
for (int i = 0; i < excelRows; i++)
{

     compName = Convert.ToString(cleanedEmailTbl.Rows[i][0]);
     email = Convert.ToString(cleanedEmailTbl.Rows[i][1]);
     email1 = Convert.ToString(cleanedEmailTbl.Rows[i][2]);
     email2 = Convert.ToString(cleanedEmailTbl.Rows[i][3]);
     Website = Convert.ToString(cleanedEmailTbl.Rows[i][4]);
     country = Convert.ToString(cleanedEmailTbl.Rows[i][5]);
     cntctPers = Convert.ToString(cleanedEmailTbl.Rows[i][6]);
     tel = Convert.ToString(cleanedEmailTbl.Rows[i][7]);
     mob = Convert.ToString(cleanedEmailTbl.Rows[i][8]);
     fax = Convert.ToString(cleanedEmailTbl.Rows[i][9]);
     region = Convert.ToString(cleanedEmailTbl.Rows[i][10]);
     status = Convert.ToInt32(cmbAllStatus.SelectedValue);
   // string date = DateTime.Now.ToString();
     category = Convert.ToString(cleanedEmailTbl.Rows[i][11]);
     urlcatlog = tboxUrlCat.Text;
     dataentrytype = Convert.ToString(cmbDataEntryType.SelectedItem);

    maxid = maxid + 1;

    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<TRANSACTION>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<maxid>" + maxid + "</maxid>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<companyname>" + compName + "</companyname>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<email>" + email + "</email>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<website>" + Website + "</website>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<country>" + country + "</country>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<telphone>" + tel + "</telphone>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<mobile>" + mob + "</mobile>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<fax>" + fax + "</fax>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<region>" + region + "</region>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<status>" + status + "</status>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<username>" + currentLoggedUserId + "</username>";
   // XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<date>" + date + "</date>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<category>" + category + "</category>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<urlorcatalog>" + urlcatlog + "</urlorcatalog>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<email1>" + email1 + "</email1>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<email2>" + email2 + "</email2>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<contactperson>" + cntctPers + "</contactperson>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "<dataentrytype>" + dataentrytype + "</dataentrytype>";
    XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "</TRANSACTION>";

}
XML_TRANSACTIONDETAILS = XML_TRANSACTIONDETAILS + "</master>";



请帮帮我.
它花费了超过一分钟的时间,然后引发异常.



Please help me.
It takes more than one minute and then throws an exception.

推荐答案

您确实应该考虑使用StringBuilder来构建字符串,因为您正在创建大量的字符串.像这样的字符串.
看看这篇文章,讨论为什么应该使用StringBuilder
字符串与StringBuilder(C#) [
You should really consider using StringBuilder to build your string, as you''re creating a massive amount of strings as like that.
Have a look at this article for a discussion of why you should use StringBuilder
String Vs StringBuilder (C#)[^]

As for your question, I''ve never heard of Context switch, is that the exception message? if so is there an inner exception which could provide more details?


如果在调试过程中遇到此异常,请尝试删除上下文切换死锁中断.

为此,请从菜单Debug/Exceptions中选择,然后打开Managed Debugging Assistants并清除Context switch ...的复选框.
If you''re getting this exception during the debugging, try removing context switch deadlock break.

In order to do this, select from the menu Debug/Exceptions and then open the Managed Debugging Assistants and clear the check box for Context switch...


这篇关于上下文切换问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆