{"id":2132,"date":"2024-03-12T09:16:36","date_gmt":"2024-03-12T09:16:36","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/"},"modified":"2024-04-06T15:32:46","modified_gmt":"2024-04-06T15:32:46","slug":"how-do-you-call-autoresetevent-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/","title":{"rendered":"How do you call AutoResetEvent in C#?"},"content":{"rendered":"<p>The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/languages\/csharp\">C#<\/a>, you can access its methods and properties through an instance of AutoResetEvent.<\/p>\n<p>Here is a basic example using the AutoResetEvent class:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">using<\/span> System;\r\n<span class=\"hljs-keyword\">using<\/span> System.Threading;\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Program<\/span>\r\n{\r\n    <span class=\"hljs-keyword\">static<\/span> AutoResetEvent autoResetEvent = <span class=\"hljs-keyword\">new<\/span> AutoResetEvent(<span class=\"hljs-literal\">false<\/span>);\r\n\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Main<\/span>()<\/span>\r\n    {\r\n        Thread t1 = <span class=\"hljs-keyword\">new<\/span> Thread(Worker);\r\n        t1.Start();\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u7b49\u5f85\u5b50\u7ebf\u7a0b\u6267\u884c\u5b8c\u6210<\/span>\r\n        autoResetEvent.WaitOne();\r\n\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Main thread is done.\"<\/span>);\r\n    }\r\n\r\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Worker<\/span>()<\/span>\r\n    {\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Worker thread is starting...\"<\/span>);\r\n        Thread.Sleep(<span class=\"hljs-number\">2000<\/span>); <span class=\"hljs-comment\">\/\/ \u6a21\u62df\u8017\u65f6\u64cd\u4f5c<\/span>\r\n\r\n        Console.WriteLine(<span class=\"hljs-string\">\"Worker thread is done.\"<\/span>);\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u901a\u77e5\u4e3b\u7ebf\u7a0b\u5b8c\u6210<\/span>\r\n        autoResetEvent.Set();\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the above example, first an AutoResetEvent instance autoResetEvent is created and initialized as false. Then a child thread t1 is created and the Worker method is called, which simulates a time-consuming operation. After the operation is finished, the main thread is notified of completion by calling the Set() method of autoResetEvent. The main thread will be blocked when calling the WaitOne() method until autoResetEvent is set to true.<\/p>\n<p>Through this approach, synchronization and communication between threads can be achieved.<\/p>\n<p>&nbsp;<\/p>\n<p>More tutorials<\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-concurrent-programming-be-implemented-in-python\/\" target=\"_blank\" rel=\"noopener\">How can concurrent programming be implemented in Python?<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/one-option-for-paraphrasing-java-thread-join-example-natively-could-be-example-of-using-the-java-thread-join-method\/\" target=\"_blank\" rel=\"noopener\">Java Thread Join method<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/multithreading-in-java-that-you-need-to-know\/\" target=\"_blank\" rel=\"noopener\">multithreading in Java that you need to know<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/the-main-method-in-java-is-declared-as-public-static-void-mainstring-args\/\" target=\"_blank\" rel=\"noopener\">The main method in Java<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-winforms-implemented-in-c\/\" target=\"_blank\" rel=\"noopener\">How is WinForms implemented in C#?<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#, you can access its methods and properties through an instance of AutoResetEvent. Here is a basic example using the AutoResetEvent class: using System; using System.Threading; class Program { static AutoResetEvent autoResetEvent = new AutoResetEvent(false); static void Main() { Thread [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-2132","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How do you call AutoResetEvent in C#? - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do you call AutoResetEvent in C#?\" \/>\n<meta property=\"og:description\" content=\"The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-12T09:16:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-06T15:32:46+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How do you call AutoResetEvent in C#?\",\"datePublished\":\"2024-03-12T09:16:36+00:00\",\"dateModified\":\"2024-04-06T15:32:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\"},\"wordCount\":188,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\",\"name\":\"How do you call AutoResetEvent in C#? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-12T09:16:36+00:00\",\"dateModified\":\"2024-04-06T15:32:46+00:00\",\"description\":\"The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do you call AutoResetEvent in C#?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How do you call AutoResetEvent in C#? - Blog - Silicon Cloud","description":"The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/","og_locale":"en_US","og_type":"article","og_title":"How do you call AutoResetEvent in C#?","og_description":"The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#","og_url":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-12T09:16:36+00:00","article_modified_time":"2024-04-06T15:32:46+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How do you call AutoResetEvent in C#?","datePublished":"2024-03-12T09:16:36+00:00","dateModified":"2024-04-06T15:32:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/"},"wordCount":188,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/","name":"How do you call AutoResetEvent in C#? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-12T09:16:36+00:00","dateModified":"2024-04-06T15:32:46+00:00","description":"The AutoResetEvent class is a synchronization event class used for thread synchronization in multi-threading. In C#","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-call-autoresetevent-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How do you call AutoResetEvent in C#?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/2132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=2132"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/2132\/revisions"}],"predecessor-version":[{"id":72344,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/2132\/revisions\/72344"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=2132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=2132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=2132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}