Использование/добавление метода делегирования и BackgroundWorker в мою полностью рабочую программуC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Использование/добавление метода делегирования и BackgroundWorker в мою полностью рабочую программу

Сообщение Anonymous »

Я просмотрел много тем, но не могу понять, как заменить существующие методы делегированием+таймером, поскольку сейчас я использую только таймер. Кроме того, при добавлении BackgroundWorker для работы с btng, который перемещает лифт вниз и открывает двери, я получаю ошибку многопоточного использования, сообщающую, что другой поток пытается вставить данные в .accdb, где записан основной поток. Добавляю код, который не очень длинный, но полностью рабочий. Может ли кто-нибудь подсказать мне, как заменить мои существующие методы делегированием и добавить один или два BackgroundWorker, чтобы помочь кнопкам, которые перемещают лифт и при этом сохранять таймеры, пожалуйста.
< п>П.С. Нужно ли мне делиться/изменять код подключения к базе данных, чтобы он работал с фоновым работником? При необходимости добавлю. Это еще пара строк..
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech;
using System.Speech.Synthesis;
using System.Data.OleDb;

namespace rewrite
{
public partial class Form1 : Form
{
//variables

int y_up = 63;
int y_down = 376;
int x_door_left_close = 74;
int x_door_left_open = 12;
int x_door_right_close = 139;
int x_door_right_open = 200;

bool go_up = false;
bool go_down = false;

bool arrived_G = false;
bool arrived_1 = false;

//object
SpeechSynthesizer reader = new SpeechSynthesizer();

public Form1()
{
InitializeComponent();
}

private void timerliftdown_Tick(object sender, EventArgs e)
{
if (picturelift.Top = y_up)
{
picturelift.Top -= 1;
}
else
{

timerliftup.Enabled = false;
btndown.Enabled = true;
btng.Enabled = true;
btnclose.Enabled = true;
btnopen.Enabled = true;
btnup.BackColor = Color.Red;
btn1.BackColor = Color.Red;

dooropenup();
arrived_1 = true;

picturelift.Image = global::rewrite.Properties.Resources.Inside_of_the_lift;
displaypanel.Image = global::rewrite.Properties.Resources._1;
displaytop.Image = global::rewrite.Properties.Resources._1;
displaybottom.Image = global::rewrite.Properties.Resources._1;
}
}

private void dooropendown_Tick(object sender, EventArgs e)
{
if (doorleftdown.Left >= x_door_left_open && doorrightdown.Left = x_door_left_open && doorrightup.Left

Подробнее здесь: https://stackoverflow.com/questions/695 ... lly-workin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»