Есть альтернатива метода timer1_Tick? - C#

Узнай цену своей работы

Формулировка задачи:

Предположим у меня на форме есть label1 и мне нужно чтоб каждую минуту(или 2е) у меня играла музыка. Я так понял что used System.Media и Timer. Это понятно! А вот как вне Timera проверять условие и генерировать одноразово случайное число. Например: Запускает юзер форму и жмёт на кнопку СТРАТ. Тут генерируется случайное число от 5 до 100 (напр. 46) и через 46 секунд играла музыка. Когда я реализую это в timer1_Tick, то число случайное получается только 5 или если успевает 6. Это происходит из-за условия
Листинг программы
  1. if (i>interval)
  2. {
  3. SoundPlayer pl = new SoundPlayer(Properties.Resources._001);
  4. interval = time.Next(5, 100);
  5. }
В timer1_Tick каждую миллисекунду проверяется условие в течении 1 секунды и генерируется несколько случайных чисел interval = time.Next(5, 100); В итоге получается что обычно минимальное число попадает как случайное. По крайней мере у меня так. Есть другая функция(метод) которая проверяет посекундно или поминутно. С помощью timer1_Tick можно реализовать её, но вдруг есть такая.
Вот код!
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Media;
  10. namespace FireWorks
  11. {
  12. public partial class Form1 : Form
  13. {
  14. //Глобальные переменные
  15. Double sekunda = 0, minuta = 0,hours = 0;
  16. // int interval;
  17. int nummus,nummin;
  18. DateTime sek = new DateTime(0);
  19. DateTime minut = new DateTime(0);
  20. DateTime hour = new DateTime(0);
  21. //---------------------
  22. public Form1()
  23. {
  24. InitializeComponent();
  25. }
  26. //***********функции***************
  27. private void RndMus(int i,int y)
  28. {
  29. Random rnd = new Random();
  30. nummus = rnd.Next(i, y);
  31. }
  32. private void RndMin(int ot, int doo)
  33. {
  34. Random rnd = new Random();
  35. nummin = rnd.Next(ot, doo);
  36. }
  37. private void Minute()
  38. {
  39. minut = minut.AddSeconds(0.1);
  40. label3.Text = minut.ToString("mm");
  41. minuta = Convert.ToDouble(label3.Text);
  42. }
  43. private void Hours()
  44. {
  45. hour = hour.AddSeconds(0.1);
  46. label4.Text = hour.ToString("HH");
  47. hours = Convert.ToDouble(label4.Text);
  48. }
  49. private void Second()
  50. {
  51. sek = sek.AddSeconds(0.1);
  52. label1.Text = sek.ToString("ss");
  53. sekunda = Convert.ToDouble(label1.Text);
  54. }
  55.  
  56. private void Change()
  57. {
  58. switch (comboBox1.SelectedIndex)
  59. {
  60. case 0:
  61. if (sekunda >= nummin)
  62. {
  63. //sekunda = 0;
  64. sek = new DateTime(0);
  65.  
  66. RndMus(1, 12);
  67. //*****************************************
  68. if (nummus == 1)
  69. {
  70. SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
  71. fire.Play();
  72. }
  73. else if (nummus == 2)
  74. {
  75. SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
  76. fire.Play();
  77. }
  78. else if (nummus == 3)
  79. {
  80. SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
  81. fire.Play();
  82. }
  83. else if (nummus == 4)
  84. {
  85. SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
  86. fire.Play();
  87. }
  88. else if (nummus == 5)
  89. {
  90. SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
  91. fire.Play();
  92. }
  93. else if (nummus == 6)
  94. {
  95. SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
  96. fire.Play();
  97. }
  98. else if (nummus == 7)
  99. {
  100. SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
  101. fire.Play();
  102. }
  103. else if (nummus == 8)
  104. {
  105. SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
  106. fire.Play();
  107. }
  108. else if (nummus == 9)
  109. {
  110. SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
  111. fire.Play();
  112. }
  113. else if (nummus == 10)
  114. {
  115. SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
  116. fire.Play();
  117. }
  118. else if (nummus == 11)
  119. {
  120. SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
  121. fire.Play();
  122. }
  123. else if (nummus == 12)
  124. {
  125. SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
  126. fire.Play();
  127. }
  128. else
  129. {
  130. SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
  131. fire.Play();
  132. }
  133. }
  134. break;
  135.  
  136. case 1:
  137. if (minuta >= nummin)
  138. {
  139. // minuta = 0;
  140. minut = new DateTime(0);
  141.  
  142. RndMus(1, 12);
  143. //*****************************************
  144. if (nummus == 1)
  145. {
  146. SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
  147. fire.Play();
  148. }
  149. else if (nummus == 2)
  150. {
  151. SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
  152. fire.Play();
  153. }
  154. else if (nummus == 3)
  155. {
  156. SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
  157. fire.Play();
  158. }
  159. else if (nummus == 4)
  160. {
  161. SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
  162. fire.Play();
  163. }
  164. else if (nummus == 5)
  165. {
  166. SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
  167. fire.Play();
  168. }
  169. else if (nummus == 6)
  170. {
  171. SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
  172. fire.Play();
  173. }
  174. else if (nummus == 7)
  175. {
  176. SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
  177. fire.Play();
  178. }
  179. else if (nummus == 8)
  180. {
  181. SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
  182. fire.Play();
  183. }
  184. else if (nummus == 9)
  185. {
  186. SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
  187. fire.Play();
  188. }
  189. else if (nummus == 10)
  190. {
  191. SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
  192. fire.Play();
  193. }
  194. else if (nummus == 11)
  195. {
  196. SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
  197. fire.Play();
  198. }
  199. else if (nummus == 12)
  200. {
  201. SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
  202. fire.Play();
  203. }
  204. else
  205. {
  206. SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
  207. fire.Play();
  208. }
  209. }
  210. break;
  211.  
  212. case 2:
  213. if (hours >= nummin)
  214. {
  215. //hours = 0;
  216. hour = new DateTime(0);
  217. RndMus(1, 12);
  218. //*****************************************
  219. if (nummus == 1)
  220. {
  221. SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
  222. fire.Play();
  223. }
  224. else if (nummus == 2)
  225. {
  226. SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
  227. fire.Play();
  228. }
  229. else if (nummus == 3)
  230. {
  231. SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
  232. fire.Play();
  233. }
  234. else if (nummus == 4)
  235. {
  236. SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
  237. fire.Play();
  238. }
  239. else if (nummus == 5)
  240. {
  241. SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
  242. fire.Play();
  243. }
  244. else if (nummus == 6)
  245. {
  246. SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
  247. fire.Play();
  248. }
  249. else if (nummus == 7)
  250. {
  251. SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
  252. fire.Play();
  253. }
  254. else if (nummus == 8)
  255. {
  256. SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
  257. fire.Play();
  258. }
  259. else if (nummus == 9)
  260. {
  261. SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
  262. fire.Play();
  263. }
  264. else if (nummus == 10)
  265. {
  266. SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
  267. fire.Play();
  268. }
  269. else if (nummus == 11)
  270. {
  271. SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
  272. fire.Play();
  273. }
  274. else if (nummus == 12)
  275. {
  276. SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
  277. fire.Play();
  278. }
  279. else
  280. {
  281. SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
  282. fire.Play();
  283. }
  284. }
  285. break;
  286.  
  287. default:
  288. // MessageBox.Show("По умолчанию выбрано: секунд(максимум 59)");
  289. if (sekunda >= nummin)
  290. {
  291. sek = new DateTime(0);
  292.  
  293. RndMus(1, 12);
  294. //*****************************************
  295. if (nummus == 1)
  296. {
  297. SoundPlayer fire = new SoundPlayer(Properties.Resources._001);
  298. fire.Play();
  299. }
  300. else if (nummus == 2)
  301. {
  302. SoundPlayer fire = new SoundPlayer(Properties.Resources._002);
  303. fire.Play();
  304. }
  305. else if (nummus == 3)
  306. {
  307. SoundPlayer fire = new SoundPlayer(Properties.Resources._003);
  308. fire.Play();
  309. }
  310. else if (nummus == 4)
  311. {
  312. SoundPlayer fire = new SoundPlayer(Properties.Resources._004);
  313. fire.Play();
  314. }
  315. else if (nummus == 5)
  316. {
  317. SoundPlayer fire = new SoundPlayer(Properties.Resources._005);
  318. fire.Play();
  319. }
  320. else if (nummus == 6)
  321. {
  322. SoundPlayer fire = new SoundPlayer(Properties.Resources._006);
  323. fire.Play();
  324. }
  325. else if (nummus == 7)
  326. {
  327. SoundPlayer fire = new SoundPlayer(Properties.Resources._007);
  328. fire.Play();
  329. }
  330. else if (nummus == 8)
  331. {
  332. SoundPlayer fire = new SoundPlayer(Properties.Resources._008);
  333. fire.Play();
  334. }
  335. else if (nummus == 9)
  336. {
  337. SoundPlayer fire = new SoundPlayer(Properties.Resources._009);
  338. fire.Play();
  339. }
  340. else if (nummus == 10)
  341. {
  342. SoundPlayer fire = new SoundPlayer(Properties.Resources._010);
  343. fire.Play();
  344. }
  345. else if (nummus == 11)
  346. {
  347. SoundPlayer fire = new SoundPlayer(Properties.Resources._011);
  348. fire.Play();
  349. }
  350. else if (nummus == 12)
  351. {
  352. SoundPlayer fire = new SoundPlayer(Properties.Resources._012);
  353. fire.Play();
  354. }
  355. else
  356. {
  357. SoundPlayer fire = new SoundPlayer(Properties.Resources._013);
  358. fire.Play();
  359. }
  360. }
  361. break;
  362. }
  363. }
  364. //**************************
  365. private void timer1_Tick(object sender, EventArgs e)
  366. {
  367. RndMin(Convert.ToInt32(numericUpDown1.Text), Convert.ToInt32(numericUpDown2.Text));
  368. //interval = Convert.ToInt32(numericUpDown1.Text);
  369. Second();
  370. Hours();
  371. Minute();
  372. Change();
  373. label2.Text = "Часовой, минутный и секундные интервалы НЕ ЗАВИСЯТ ДРУГ ОТ ДРУГА! Их данные: " + hours + " часов | " + minuta + " минут | " + sekunda + " секунд";
  374. }
  375.  
  376. private void button1_Click(object sender, EventArgs e)
  377. {
  378. if (timer1.Enabled == true)
  379. timer1.Enabled = false;
  380. else
  381. timer1.Enabled = true;
  382. }
  383. }
  384. }

Решение задачи: «Есть альтернатива метода timer1_Tick?»

textual
Листинг программы
  1. var randomNumber = r.Next(максимальное число для генерации);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы