Timer na Form1 i problem z utworzeniem nowego wątku.

0

Mam na Form1 timer, dodałem przycisk, który ma otwierać stronę i chcę to zrobić w nowym wątku.

using System.Threading;

        private void odwiedzStroneThreadTask()
        {
            System.Diagnostics.Process.Start("http://www.4programmers.net");
        }
        private void buttonOdwiedzStrone_Click(object sender, EventArgs e)
        {
            //odwiedzanie strony w nowym wątku
            Thread trd = new Thread(new ThreadStart(this.odwiedzStroneThreadTask));
            trd.IsBackground = true;
            trd.Start();
        }
 

Treść błędów:

Error 1 'Timer' is an ambiguous reference between 'System.Windows.Forms.Timer' and 'System.Threading.Timer'

        private void sprawdzAutomatycznePrzejscie(CheckBox checkBoxAutomatyka, Timer obTimer)
        {
            if (checkBoxAutomatyka.Checked)
            {
                obTimer.Start();
            }
            else
            {
                obTimer.Stop();
            }
        }
 

W tej linii pokazuje błąd private void sprawdzAutomatycznePrzejscie(CheckBox checkBoxAutomatyka, Timer obTimer), dlaczego? Wszystko działo dobrze, dopóki nie chciałem otworzyć strony w nowym wątku.

0

Bo klasa Timer jest zarówno w przestrzeni System.Windows.Forms jak i w System.Threading, i o tym mówi komunikat o błędzie.

Po prostu, jeśli masz usingi dla tych dwóch przestrzeni, to w kodzie zamiast:

Timer t = new Timer();

musisz podawać pełną nazwę, np.:

System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();

A w przypadku definicji metody, jak u Ciebie, też musisz podać pełną nazwę typu:

private void sprawdzAutomatycznePrzejscie(CheckBox checkBoxAutomatyka, System.Windows.Forms.Timer obTimer)
0

Wielkie dzięki somekind. Mam jeszcze jedno pytanie, czy można w jakiś prosty sposób sprawdzić czy wpisany tekst w textBox jest adresem email, czyli ma postać jakaśNazwa@jakaśDomena?

0 użytkowników online, w tym zalogowanych: 0, gości: 0