![](/img/trans.png)
[英]System.EntryPointNotFoundException: Unable to find an entry point
[英]System.EntryPointNotFoundException in Parallel red in output
我遇到了一些小問題,但是我似乎看不到哪里出了問題,可以有人幫我解決一下:
負載裝配fn
public static Assembly LoadAssembly(string assemblyfile)
{
Assembly library;
using (var fs = File.Open(assemblyfile, FileMode.Open))
{
using (MemoryStream ms = new MemoryStream())
{
byte[] buffer = new byte[1024];
int read;
while ((read = fs.Read(buffer, 0, 1024)) > 0)
ms.Write(buffer, 0, read);
library = Assembly.Load(ms.ToArray());
}
}
return library;
}
public static string[] GetDLLInfo(string assemblyfile, bool onlyNameSpace)
{
var strAssembly = LoadAssembly(assemblyfile).GetTypes();
List<string> classList = new List<string>();
var xx = strAssembly.Select(t => t.Namespace).Distinct().ToList();
var nmSpaceLiStrings = xx.ToArray();
Parallel.ForEach(nmSpaceLiStrings, x =>
{
var types = strAssembly.Where(t => t.IsClass && t.Namespace == x).ToList();
types.ForEach(t => classList.Add(t.FullName));
});
/* foreach (var x in nmSpaceLiStrings)
{
var types = strAssembly.Where(t => t.IsClass && t.Namespace == x).ToList();
types.ForEach(t => classList.Add(t.FullName));
} */
if (onlyNameSpace)
{
return nmSpaceLiStrings;
}
return classList.ToArray();
}
如果我使用'foreach'(不是parallel,那有點奇怪,在輸出對話框中沒有警告,但是當我使用'parallel'時,我得到了:
A first chance exception of type 'System.EntryPointNotFoundException' occurred in mscorlib.dll
我的平行測試是否出錯並向我顯示正確的方法?
提前致謝 。
您沒有嘗試使用ConcurrentBag <T>來代替將類名添加到列表中嗎?
什么是LoadAssembly方法? 如何聲明? 該異常表示dll中不存在某些方法。 所以問題出在程序集本身或LoadAssembly聲明中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.