Как я могу прочитать файл в потоке пользовательского интерфейса - PullRequest
0 голосов
/ 29 октября 2018

У меня есть такой код, но когда я его запускаю, он показывает ":

Синхронные операции не должны выполняться в потоке пользовательского интерфейса. Попробуйте обернуть этот метод в Task.Run

Как я могу решить это? Спасибо

public guchi()
{   
    string[] list = File.ReadAllLines(@"C:\Users\sample.csv");

    foreach (string item in list)
    {
        var tmp = item.Split(';');
        this.Add(new guchi()
        {
           test = tmp[0],
            fun = tmp[1],
            happy = tmp[2],
            run = tmp[3],
            now = tmp[4],
            god = tmp[5],
            time = tmp[6],
            final= tmp[7],
            Pyke = tmp[8],
            Xinzhao = tmp[9]
        });
    }
}

1 Ответ

0 голосов
/ 29 октября 2018

Или используйте асинхронную версию API.

File.ReadAllLinesAsync

Также, пожалуйста, прочитайте этот пост о том, как использовать async в конструкторах, поскольку вам нужно пометить метод как async, чтобы ожидать вызовов API.

...