Есть альтернатива метода timer1_Tick? - C#
Формулировка задачи:
Предположим у меня на форме есть label1 и мне нужно чтоб каждую минуту(или 2е) у меня играла музыка. Я так понял что used System.Media и Timer. Это понятно! А вот как вне Timera проверять условие и генерировать одноразово случайное число. Например:
Запускает юзер форму и жмёт на кнопку СТРАТ. Тут генерируется случайное число от 5 до 100 (напр. 46) и через 46 секунд играла музыка. Когда я реализую это в timer1_Tick, то число случайное получается только 5 или если успевает 6. Это происходит из-за условия
В timer1_Tick каждую миллисекунду проверяется условие в течении 1 секунды и генерируется несколько случайных чисел interval = time.Next(5, 100); В итоге получается что обычно минимальное число попадает как случайное. По крайней мере у меня так. Есть другая функция(метод) которая проверяет посекундно или поминутно. С помощью timer1_Tick можно реализовать её, но вдруг есть такая.
Листинг программы
- if (i>interval)
- {
- SoundPlayer pl = new SoundPlayer(Properties.Resources._001);
- interval = time.Next(5, 100);
- }
Вот код!
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Media;
- namespace FireWorks
- {
- public partial class Form1 : Form
- {
- //Глобальные переменные
- Double sekunda = 0, minuta = 0,hours = 0;
- // int interval;
- int nummus,nummin;
- DateTime sek = new DateTime(0);
- DateTime minut = new DateTime(0);
- DateTime hour = new DateTime(0);
- //---------------------
- public Form1()
- {
- InitializeComponent();
- }
- //***********функции***************
- private void RndMus(int i,int y)
- {
- Random rnd = new Random();
- nummus = rnd.Next(i, y);
- }
- private void RndMin(int ot, int doo)
- {
- Random rnd = new Random();
- nummin = rnd.Next(ot, doo);
- }
- private void Minute()
- {
- minut = minut.AddSeconds(0.1);
- label3.Text = minut.ToString("mm");
- minuta = Convert.ToDouble(label3.Text);
- }
- private void Hours()
- {
- hour = hour.AddSeconds(0.1);
- label4.Text = hour.ToString("HH");
- hours = Convert.ToDouble(label4.Text);
- }
- private void Second()
- {
- sek = sek.AddSeconds(0.1);
- label1.Text = sek.ToString("ss");
- sekunda = Convert.ToDouble(label1.Text);
- }
- private void Change()
- {
- switch (comboBox1.SelectedIndex)
- {
- case 0:
- if (sekunda >= nummin)
- {
- //sekunda = 0;
- sek = new DateTime(0);
- RndMus(1, 12);
- //*****************************************
- if (nummus == 1)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
- fire.Play();
- }
- else if (nummus == 2)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
- fire.Play();
- }
- else if (nummus == 3)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
- fire.Play();
- }
- else if (nummus == 4)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
- fire.Play();
- }
- else if (nummus == 5)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
- fire.Play();
- }
- else if (nummus == 6)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
- fire.Play();
- }
- else if (nummus == 7)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
- fire.Play();
- }
- else if (nummus == 8)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
- fire.Play();
- }
- else if (nummus == 9)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
- fire.Play();
- }
- else if (nummus == 10)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
- fire.Play();
- }
- else if (nummus == 11)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
- fire.Play();
- }
- else if (nummus == 12)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
- fire.Play();
- }
- else
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
- fire.Play();
- }
- }
- break;
- case 1:
- if (minuta >= nummin)
- {
- // minuta = 0;
- minut = new DateTime(0);
- RndMus(1, 12);
- //*****************************************
- if (nummus == 1)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
- fire.Play();
- }
- else if (nummus == 2)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
- fire.Play();
- }
- else if (nummus == 3)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
- fire.Play();
- }
- else if (nummus == 4)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
- fire.Play();
- }
- else if (nummus == 5)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
- fire.Play();
- }
- else if (nummus == 6)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
- fire.Play();
- }
- else if (nummus == 7)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
- fire.Play();
- }
- else if (nummus == 8)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
- fire.Play();
- }
- else if (nummus == 9)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
- fire.Play();
- }
- else if (nummus == 10)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
- fire.Play();
- }
- else if (nummus == 11)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
- fire.Play();
- }
- else if (nummus == 12)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
- fire.Play();
- }
- else
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
- fire.Play();
- }
- }
- break;
- case 2:
- if (hours >= nummin)
- {
- //hours = 0;
- hour = new DateTime(0);
- RndMus(1, 12);
- //*****************************************
- if (nummus == 1)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
- fire.Play();
- }
- else if (nummus == 2)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
- fire.Play();
- }
- else if (nummus == 3)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
- fire.Play();
- }
- else if (nummus == 4)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
- fire.Play();
- }
- else if (nummus == 5)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
- fire.Play();
- }
- else if (nummus == 6)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
- fire.Play();
- }
- else if (nummus == 7)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
- fire.Play();
- }
- else if (nummus == 8)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
- fire.Play();
- }
- else if (nummus == 9)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
- fire.Play();
- }
- else if (nummus == 10)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
- fire.Play();
- }
- else if (nummus == 11)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
- fire.Play();
- }
- else if (nummus == 12)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
- fire.Play();
- }
- else
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
- fire.Play();
- }
- }
- break;
- default:
- // MessageBox.Show("По умолчанию выбрано: секунд(максимум 59)");
- if (sekunda >= nummin)
- {
- sek = new DateTime(0);
- RndMus(1, 12);
- //*****************************************
- if (nummus == 1)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
- fire.Play();
- }
- else if (nummus == 2)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
- fire.Play();
- }
- else if (nummus == 3)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
- fire.Play();
- }
- else if (nummus == 4)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
- fire.Play();
- }
- else if (nummus == 5)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
- fire.Play();
- }
- else if (nummus == 6)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
- fire.Play();
- }
- else if (nummus == 7)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
- fire.Play();
- }
- else if (nummus == 8)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
- fire.Play();
- }
- else if (nummus == 9)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
- fire.Play();
- }
- else if (nummus == 10)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
- fire.Play();
- }
- else if (nummus == 11)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
- fire.Play();
- }
- else if (nummus == 12)
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
- fire.Play();
- }
- else
- {
- SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
- fire.Play();
- }
- }
- break;
- }
- }
- //**************************
- private void timer1_Tick(object sender, EventArgs e)
- {
- RndMin(Convert.ToInt32(numericUpDown1.Text), Convert.ToInt32(numericUpDown2.Text));
- //interval = Convert.ToInt32(numericUpDown1.Text);
- Second();
- Hours();
- Minute();
- Change();
- label2.Text = "Часовой, минутный и секундные интервалы НЕ ЗАВИСЯТ ДРУГ ОТ ДРУГА! Их данные: " + hours + " часов | " + minuta + " минут | " + sekunda + " секунд";
- }
- private void button1_Click(object sender, EventArgs e)
- {
- if (timer1.Enabled == true)
- timer1.Enabled = false;
- else
- timer1.Enabled = true;
- }
- }
- }
Решение задачи: «Есть альтернатива метода timer1_Tick?»
textual
Листинг программы
- var randomNumber = r.Next(максимальное число для генерации);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д