Goldfish777
@Goldfish777
Моддинг игр серии GTA.

Как создать бесконечный фоновый цикл в Win Form?

Вот построенная программа Win Form (C#)

namespace sharp_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            SoundPlayer simpleSound = new SoundPlayer(@"kurlik.wav");
            simpleSound.PlayLooping();
        }


    }
}


Вопрос в том, что не могу не как разобраться как создать теперь бесконечный цикл при этом чтобы была возможность обращения к контроллам формы.

Вот этот код нужно заставить работать в цикле (в фоне)

{
    Random rnd = new Random();
    int xi = 1;
    int yi = 1;
    while (true)
    {
        int vx = rnd.Next(0, 1);
        int vy = rnd.Next(0, 1);
        if (vx == 1) xi *= 1; else xi *= -1;
        if (vy == 1) yi *= 1; else yi *= -1;
        while (pictureBox1.Location.X > 12 & pictureBox1.Location.X < 272 & pictureBox1.Location.Y > 12 & pictureBox1.Location.Y < 249)
        {

            pictureBox1.Location = new Point(pictureBox1.Location.X + xi, pictureBox1.Location.Y + yi);
            textBox1.Text = Convert.ToString(pictureBox1.Location.X + xi);
        }
    }
}


(Если кратко, то эта программа должна перемещать картинку от края до края с самого запуска приложения)

п.с пробовал через таймер и потоки, но так и не смог понять как выполнить обращение к контроллам, все время появлялась ошибка. Буду благодарен за любой пример кода.
  • Вопрос задан
  • 1056 просмотров
Пригласить эксперта
Ответы на вопрос 1
@tex0
У вас точно WPF?
А то что-то больше похоже на WinForms.
По работе с элементами управления из отдельных потоков:
- для WinForms читайте тут
- для WPF читайте про модель потоков
UPD: сам подход к решению задачи норм(создавайте поток и в нём крутите свой цикл)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы