Я пытаюсь реализовать фоновый работник для мониторинга файловой системы Service.
Мой код делится как:
class.cs, который содержит все методы, переменные и файловую реализацию . И основная форма1, которая содержит данные формы и требует кнопок \ и т. Д. Когда я запускаю свою программу, все, что происходит, это изменения курсора (это уже ожидалось) - действие происходит в фоновом режиме (все делается), но в моем панели хода прогресса не отображается отчет. Я получил пример с веб -сайта и адаптировал его к моему коду - есть ли что -то неправильное, что я делаю? Я полагаю, что есть что -то связанное с тем фактом, что единственное, что я называю, это файловая сторона, но я ожидал, что это сообщит о прогрессе, основанном на действии, действующем «на фоне». < /P>
Любая помощь ценится. Спасибо
my form1 -код (FounalWorker part) и файловая система warewatcher следует:
namespace PPF_Converter_v10
{
public partial class Form1 : Form
{
private FileManipulation prg;
//private FileManipulation FileOp;
public Form1()
{
InitializeComponent();
//FileOp = new FileManipulation();
prg = new FileManipulation();
//Load config before the program begins - loading sample config or newly generated config
prg.LoadConfig();
FillTextBox();
bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
}
< /code>
Код FounalWorker: < /p>
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (!textBox1.Text.Contains("\\"))
{
MessageBox.Show("Please define the input folder before starting");
}
else if (!textBox2.Text.Contains("\\"))
{
MessageBox.Show("Please define the XML Output folder before starting");
}
else if (!textBox3.Text.Contains("\\"))
{
MessageBox.Show("Please define the Converted PPF Output Folder before starting");
}
else if (!textBox4.Text.Contains("\\"))
{
MessageBox.Show("Please define the Invalid PPF Output Folder before starting");
}
else
{
// calls the watcher
// prg.FileWatcher.SynchronizingObject = progressBar1.
prg.ProgramProcessing(textBox1.Text);
}
// do some long-winded process here
// this is executed in a separate thread
int maxOps = 1000000;
for (int i = 0; i < maxOps; i++)
{
//rtbText.AppendText(i.ToString() + "\r\n");
// report progress as a percentage complete
bgWorker.WorkerReportsProgress = true;
bgWorker.ReportProgress(100 * i / maxOps);
}
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// update the progress bar
pbProgress.Value = e.ProgressPercentage;
}
private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// return to "normal" mode of operation
this.Cursor = Cursors.Default;
btnGo.Enabled = true;
}
private void btnGo_Click_1(object sender, EventArgs e)
{
// give the appearance of something happening
this.Cursor = Cursors.WaitCursor;
btnGo.Enabled = false;
// call RunWorkerAsync to start the background thread
bgWorker.RunWorkerAsync();
}
< /code>
Исключение, выбрасываемое при включении Richtextbox < /code>:
Дополнительная информация: < /p>
Операция по перекрестной транспортировке не действительна: Control 'rtbtext' Доступен из потока, кроме потока, который он был создан. < /p>
< /blockquote '>
Подробнее здесь: https://stackoverflow.com/questions/359 ... temwatcher
Фонообразователь с файловой системой ⇐ C#
Место общения программистов C#
1752763134
Anonymous
Я пытаюсь реализовать фоновый работник для мониторинга файловой системы Service.
Мой код делится как:
class.cs, который содержит все методы, переменные и файловую реализацию . И основная форма1, которая содержит данные формы и требует кнопок \ и т. Д. Когда я запускаю свою программу, все, что происходит, это изменения курсора (это уже ожидалось) - действие происходит в фоновом режиме (все делается), но в моем панели хода прогресса не отображается отчет. Я получил пример с веб -сайта и адаптировал его к моему коду - есть ли что -то неправильное, что я делаю? Я полагаю, что есть что -то связанное с тем фактом, что единственное, что я называю, это файловая сторона, но я ожидал, что это сообщит о прогрессе, основанном на действии, действующем «на фоне». < /P>
Любая помощь ценится. Спасибо
my form1 -код (FounalWorker part) и файловая система warewatcher следует:
namespace PPF_Converter_v10
{
public partial class Form1 : Form
{
private FileManipulation prg;
//private FileManipulation FileOp;
public Form1()
{
InitializeComponent();
//FileOp = new FileManipulation();
prg = new FileManipulation();
//Load config before the program begins - loading sample config or newly generated config
prg.LoadConfig();
FillTextBox();
bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
}
< /code>
Код FounalWorker: < /p>
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (!textBox1.Text.Contains("\\"))
{
MessageBox.Show("Please define the input folder before starting");
}
else if (!textBox2.Text.Contains("\\"))
{
MessageBox.Show("Please define the XML Output folder before starting");
}
else if (!textBox3.Text.Contains("\\"))
{
MessageBox.Show("Please define the Converted PPF Output Folder before starting");
}
else if (!textBox4.Text.Contains("\\"))
{
MessageBox.Show("Please define the Invalid PPF Output Folder before starting");
}
else
{
// calls the watcher
// prg.FileWatcher.SynchronizingObject = progressBar1.
prg.ProgramProcessing(textBox1.Text);
}
// do some long-winded process here
// this is executed in a separate thread
int maxOps = 1000000;
for (int i = 0; i < maxOps; i++)
{
//rtbText.AppendText(i.ToString() + "\r\n");
// report progress as a percentage complete
bgWorker.WorkerReportsProgress = true;
bgWorker.ReportProgress(100 * i / maxOps);
}
}
private void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// update the progress bar
pbProgress.Value = e.ProgressPercentage;
}
private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// return to "normal" mode of operation
this.Cursor = Cursors.Default;
btnGo.Enabled = true;
}
private void btnGo_Click_1(object sender, EventArgs e)
{
// give the appearance of something happening
this.Cursor = Cursors.WaitCursor;
btnGo.Enabled = false;
// call RunWorkerAsync to start the background thread
bgWorker.RunWorkerAsync();
}
< /code>
Исключение, выбрасываемое при включении Richtextbox < /code>:
Дополнительная информация: < /p>
Операция по перекрестной транспортировке не действительна: Control 'rtbtext' Доступен из потока, кроме потока, который он был создан. < /p>
< /blockquote '>
Подробнее здесь: [url]https://stackoverflow.com/questions/35907890/backgroundworker-with-filesystemwatcher[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия