blood-moon
@blood-moon
Маленький фрилансер

Как остановить отслеживание события?

Есть вот такой код
void funct()
        {
            webBrowser1.DocumentCompleted += (sender, e) =>
            {
                MessageBox.Show((sender as WebBrowser).Document.Url.ToString());
                MessageBox.Show((sender as WebBrowser).Document.Cookie);

                if ((sender as WebBrowser).Document.Url.ToString().Contains("chl_jschl_tk"))
                {
                    string link = (sender as WebBrowser).Document.Url.ToString();
                    string cookie = CookieReader.GetCookie(link);

                    File.AppendAllText("link.txt", link);

                    File.AppendAllText("cookie.txt", cookie);
                    // Вот тут нужно перестать отслеживать событие так как оно происходит много раз 
                }
            };
            webBrowser1.Navigate("https://www.site.com/list1");
        }

Как остановить отслеживание события после if(true)
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@oleg_ods
Вынести обработчик в отдельный метод и сделать отписку с помощью оператора -=

https://docs.microsoft.com/en-us/dotnet/csharp/pro...

Последний пункт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@FreeBa
Как то так.
using System;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            var browser = new Browser();
            browser.Bruh += (s, e) =>
            {
                Console.WriteLine("YAY");
                browser.ClearEvents();
            };

            browser.Go();
            browser.Go();
            browser.Go();
        }
    }

    class Browser
    {
        public event EventHandler Bruh;

        public void Go()
        {
            Console.WriteLine("GO");
            Bruh?.Invoke(this, null);
        }

        public void ClearEvents()
        {
            Bruh = null;
        }
    }
}
Ответ написан
yarosroman
@yarosroman Куратор тега C#
C# the best
webBrowser1.DocumentCompleted = null
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы