我试图执行一个包含大约1000000个简单UPDATE查询的大型sql脚本.
此脚本文件的总大小约为100 MB.
当我运行这个脚本时,我得到一个Out Of Memory异常.
当我将文件分成10 MB的块时,我可以运行它们中的每一个.
但是,为了方便起见,我想只有一个我可以同时运行的脚本.我可以引入任何语句,以便SQL Server在运行每个查询后释放分配的内存,这样我就可以立即执行这个大型脚本吗?
我有一个用C#(.NET 4.0)编写的复杂WPF项目,我为(NUnit)编写了几个测试.这些测试存在于不同的类中,只要我为每个类单独运行测试,一切都很好.但是,一旦我尝试同时运行所有类的所有测试,第一个类的测试就会成功,但是一旦testrunner(Resharper或nunit-console)开始测试剩余的类,所有这些类都会失败并显示以下堆栈跟踪.
System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.Media.Imaging.BitmapDecoder.ToString()
at System.Windows.Media.Imaging.BitmapFrameDecode.ConvertToString(String format, IFormatProvider provider)
at System.Windows.Media.ImageSource.ToString()
at MUSTANG.ShowCase.ResourceLibrary.ResourceDictionaryManager.GetUriString(String pKey) in c:\Daten\Jenkins-ci\jobs\MUSTANG-Showcase-Release-VS2010\workspace\MUSTANG-Showcase\MUSTANG.ShowCase.ResourceLibrary\ResourceDictionaryManager.cs:Zeile 49.
Run Code Online (Sandbox Code Playgroud)
相应的代码如下:
public object GetValue(string pKey)
{
if (mDictionary.Contains(pKey))
{
return mDictionary[pKey];
}
return null;
}
public String GetUriString(string pKey)
{
object result = GetValue(pKey);
if (null == result)
{
Log.Warn(string.Format(@"Ressource '{0}' nicht gefunden!", pKey));
return "";
}
return result.ToString();
}
Run Code Online (Sandbox Code Playgroud)
当资源是图像时,GetUriString中的最后一行发生异常.Nunit似乎使用不同的线程来运行不同的测试类 - 它们仍按顺序运行.有没有办法解决这个问题,例如通过告诉NUnit或testrunners使用单个线程,在每个测试类运行后完全退出或类似?
编辑1:到目前为止我尝试过的内容:
[RequiresSTA]属性装饰测试 …