При нажатии кнопки "указать", указывается путь к папке с файлами, получается список файлов и по очередной загружается в picturebox и параллельно в асинхронном методе по картинке генерируются некие данные, и после их генерации становится доступна вторая кнопка. Вопрос как записать результат асинхронного метода в переменную Data ?
public string[] Images;
public string[] Data;
public int count = 0;
private static readonly HttpClient client = new HttpClient(new HttpClientHandler
{
AllowAutoRedirect = true,
UseCookies = true,
CookieContainer = new CookieContainer()
});
public void LoadImage()
{
Image CurrentImage = Image.FromFile(Images[this.count]);
pictureBox1.Image = CurrentImage;
LoadJSONAsync(CurrentImage);
}
public async void LoadJSONAsync(Image Image)
{
/* GET LINE */
string Line = "LINE";
//Нужно записать результат асинхронного вызова в переменную класса Data
this.Data[this.count] = Line;
button2.Enabled = true;
}
private void button1_Click(object sender, EventArgs e)
{
if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = folderBrowserDialog1.SelectedPath;
Images = Directory.GetFiles(textBox1.Text);
this.count = 0;
LoadImage();
}
}
private void button2_Click(object sender, EventArgs e)
{
//Работа с this.Data[this.count]
}
Как насчет такого подхода?
public Task<string> LoadImage()
{
Image CurrentImage = Image.FromFile(Images[this.count]);
pictureBox1.Image = CurrentImage;
return LoadJSONAsync(CurrentImage);
}
public async Task<string> LoadJSONAsync(Image Image)
{
/* GET LINE */
string Line = "LINE";
return Line;
}
private async void button1_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = folderBrowserDialog1.SelectedPath;
Images = Directory.GetFiles(textBox1.Text);
this.count = 0;
var line = await LoadImage(); // загрузка строки
this.Data[this.count] = line; // делайте с результатом все, что хотите
button2.Enabled = true; // UI логика не размазана по методам
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Все объекты являются неуправляемыми за исключением некоторых типов
Просто как заблокировать клавиатуру и мышь? Уже смотрел эту страницу http://wwwcyberforum
Имеется связка "Компьютер - GPRS модем - счетчик стандарта ГОСТ IEC 61107—2011"GPRS модем подключен к COM порту