AsyncMethodBuilder.cs не найден во время выполнения асинхронного кода C # - PullRequest
1 голос
/ 12 октября 2019

Я получаю сообщение об ошибке всякий раз, когда пытаюсь отладить свой код, и я не могу продолжить.

AsyncMethodBuilder.cs Not Found

Справочная информация:

Я должен сжать огромный объем документов и с минимальными затратами времени. У меня есть библиотека сжатия, и я могу сделать сжатие синхронно. Но чтобы ускорить процесс, я хотел бы сжимать документы параллельно (ни одно из документов, сжимаемых за раз, не программируется) так, чтобы 1. Я правильно использовал ЦП и выполнил работу в оптимальное время.

ДляДля достижения вышеизложенного я перешел по ссылке this , чтобы создать несколько задач, и дождался их завершения

Ниже приведен код, который я пробовал.

public static class CompressAllTechniques
    {
        public static void Main()
        {
            GoCallAPIAsync();
        }

        private static async void GoCallAPIAsync()
        {
            try
            {
                List<Task> TaskList = new List<Task>();
// For Sample testing I have taken 4 files and will iterate through them to check the timings
                const string originalFile1 = @"Sample Data\source";
                const string originalFile2 = @"Sample Data\source1";
                const string originalFile3 = @"Sample Data\Original";
                const string originalFile4 = @"Sample Data\Original1";
                List<string> arr = new List<string>() { originalFile1, originalFile2, originalFile3, originalFile4 };
                int noofThreads = 2;       // No of tasks that has to run paralally
                int IterationsCompleted = 0;
                int TotalIterations = 10;
                var temp = arr;
                Console.WriteLine("\n\nProcess Started @ " + DateTime.Now);
                for (int i = 0; i < TotalIterations; i++)
                {
                    if (temp.Count == 0) temp = arr;
                    var sd = temp.Take(noofThreads);

                    foreach (var item in sd)
                    {
                        var LastTask = new Task(() => GoCompress(item, IterationsCompleted));
                        LastTask.Start();
                        TaskList.Add(LastTask);
                    }
                    temp = temp.Except(sd).ToList();

                    await Task.WhenAll(TaskList.ToArray());
                    TaskList.Clear();
                }
                Console.WriteLine("\n\nProcess Completed @ " + DateTime.Now);
                Console.Read();
            }
            catch (Exception ex)
            {
                throw;
            }

        }

        private static void GoCompress(string zdf, int dcnk)
        {
              // Compression Logic
        }        
    }

Когда я пытаюсьДля отладки приведенного выше кода я получил следующее исключение в Visual Studio.

Locating source for 'f:\dd\ndp\clr\src\BCL\system\runtime\compilerservices\AsyncMethodBuilder.cs'. (No checksum.)
The file 'f:\dd\ndp\clr\src\BCL\system\runtime\compilerservices\AsyncMethodBuilder.cs' does not exist.
Looking in script documents for 'f:\dd\ndp\clr\src\BCL\system\runtime\compilerservices\AsyncMethodBuilder.cs'...
Looking in the projects for 'f:\dd\ndp\clr\src\BCL\system\runtime\compilerservices\AsyncMethodBuilder.cs'.
The file was not found in a project.
...