Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
ForKill
0 / 0 / 1
Регистрация: 24.02.2014
Сообщений: 2
1

Подвисание программы при хеширование

24.02.2014, 23:08. Просмотров 451. Ответов 2
Метки нет (Все метки)

Все доброго времени суток.
У меня вот такая проблема:
- При обработке хэша большого по размеру файла (~500мб) , подвисает программа секунд на 5... (Не отвечает)
- Вопрос: Можно ли как то устранить проблему с подвисанием, или как то ускорить процесс считывания хэша...

Сам код обработчика вот...
C#
1
2
3
4
5
6
7
8
9
10
11
12
public string ComputeMD5Checksum(string path)
{
    using (FileStream fs = File.OpenRead(path))
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] fileData = new byte[fs.Length];
        fs.Read(fileData, 0, (int)fs.Length);
        byte[] checkSum = md5.ComputeHash(fileData);
        string result = BitConverter.ToString(checkSum).Replace("-", String.Empty);
        return result;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2014, 23:08
Ответы с готовыми решениями:

Подвисание программы при получении html кода
Всем привет. Мне надо получить html код страницы. У меня на кнопке есть код: ...

Подвисание программы из за большого массива, принимаемого с сервера
С сервера считывается массив, где-то до 1500 4-злачных элементов, после...

Подвисание формы при перетаскивании
Добрый день. Есть следующая проблема. Рисую на компоненте ZedGraphControl...

Подвисание формы при вызове Show()
Есть такая ситуация: загружается главная форма и в событии Shown вызывается...

Подвисание окна при доступе к контролу из потока...
При нажатии на кнопку создается и стартуется поток, который получает текст из...

2
Rameron
Си-решеточник
138 / 132 / 60
Регистрация: 07.02.2011
Сообщений: 641
24.02.2014, 23:14 2
Подсчитывать хэш в паралельном потоке.
1
ForKill
0 / 0 / 1
Регистрация: 24.02.2014
Сообщений: 2
24.02.2014, 23:51  [ТС] 3
Еще вопрос к проблеме

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void func1()
{
    Thread myThread = new Thread(func2);
 
    myThread.Start();
}
 
void func2()
{
    for (int i = 0; i < 10; i++)
    {
        richTextBox1.Text = richTextBox1.Text + "2 поток теста " + i;
        Thread.Sleep(0);
    }
    MessageBox.Show("2 поток конец");
}
Как обновить richTextBox1 из потока в форме?

Добавлено через 3 минуты
Все разобрался, спасибо.
C#
1
richTextBox1.Invoke(new Action(() => richTextBox1.Text = "new value"));
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2014, 23:51

Подвисание приложения
Привет! Вот листинг MainForm.cs - это простенький архиватор, работающий с...

Хеширование на C#
Ребята! На сколько сложнее реализуются алгоритмы хеширования на C#, чем на...

Зациклить хеширование
Как зациклить хеширование MD5 ? Написал хеширование только на (значение) 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru