{"id":1347,"date":"2019-01-24T21:09:34","date_gmt":"2019-01-24T12:09:34","guid":{"rendered":"https:\/\/www.oqiita.com\/?p=1347"},"modified":"2019-01-24T21:09:34","modified_gmt":"2019-01-24T12:09:34","slug":"%e3%80%90c%e3%80%91async%e3%80%81await%e3%80%81httpclient","status":"publish","type":"post","link":"https:\/\/www.oqiita.com\/?p=1347","title":{"rendered":"\u3010C#\u3011Async\u3001Await\u3001HttpClient"},"content":{"rendered":"<p>\u8a00\u8a9e\u3044\u308d\u3044\u308d\u3084\u3063\u3066\u308b\u3068\u3001\u6bce\u56de\u5fd8\u308c\u308b\u3084\u30fc\u3064\u3002<br \/>\n\u305d\u3057\u3066\u516c\u958b\u3059\u308b\u306e\u5fd8\u308c\u3066\u305fw<\/p>\n<p><!--more--><\/p>\n<div class=\"pre_tag\"><span><i class=\"fa fa-code\"><\/i> Form1.cs<\/span><\/p>\n<pre class=\"line-numbers\"><code class=\"language-csharp\">using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing System.Windows.Forms;\n\nnamespace WindowsFormsApp1\n{\n    public partial class Form1 : Form\n    {\n        \/\/ \u5909\u6570\u3092\u5b9a\u7fa9\n        private static HttpClient client = new HttpClient();\n        private static CancellationTokenSource tokenSource;\n\n        public Form1()\n        {\n            InitializeComponent();\n        }\n\n        \/\/ \u975e\u540c\u671f\u51e6\u7406\u3092\u5b9f\u884c\u3059\u308b\u30dc\u30bf\u30f3\n        private async void button3_Click(object sender, EventArgs e)\n        {\n            \/\/ \u30c8\u30fc\u30af\u30f3\u3092\u65b0\u3057\u304f\u767a\u884c\n            tokenSource = new CancellationTokenSource();\n            var cancelToken = tokenSource.Token;\n\n            \/\/ \u975e\u540c\u671f\u51e6\u7406\u3092\u547c\u3073\u51fa\u3059\n            var a = await AsyncTest(cancelToken);\n\n            \/\/ \u975e\u540c\u671f\u51e6\u7406\u306e\u7d50\u679c\u3092\u8868\u793a\n            MessageBox.Show(a.ToString(), \"button3_Click End\");\n        }\n\n        \/\/ \u975e\u540c\u671f\u51e6\u7406\u3092\u30dc\u30bf\u30f3\u30a4\u30d9\u30f3\u30c8\u306b\u5168\u3066\u3092\u8a18\u8ff0\u3059\u308b\u5834\u5408\n        private void button4_Click(object sender, EventArgs e)\n        {\n            var task = Task.Run(async () =&gt;\n            {\n                await Task.Delay(1000);\n                MessageBox.Show(\"1\", \"button4_Click End\");\n            });\n        }\n\n        \/\/ \u30ad\u30e3\u30f3\u30bb\u30eb\u30dc\u30bf\u30f3\n        private void button5_Click(object sender, EventArgs e)\n        {\n            \/\/ \u30ad\u30e3\u30f3\u30bb\u30eb\u3092\u9001\u4fe1\n            tokenSource.Cancel();\n        }\n\n        \/\/ \u975e\u540c\u671f\u51e6\u7406\n        public async Task<int> AsyncTest(CancellationToken cancelToken)\n        {\n            \/\/ \u6642\u9593\u306e\u304b\u304b\u308b\u51e6\u7406\u3092\u5b9f\u884c\n            for (int i = 0; i  5; i++)\n            {\n                \/\/ 1000\u30df\u30ea\u79d2\u5f85\u6a5f\n                await Task.Delay(1000);\n\n                if (cancelToken.IsCancellationRequested)\n                {\n                    \/\/ \u30ad\u30e3\u30f3\u30bb\u30eb\u7d42\u4e86\n                    return 0;\n                }\n            }\n            \n            \/\/ \u6b63\u5e38\u7d42\u4e86\n            return 1;\n        }\n\n        public async Task<string> AsyncHttpTest()\n        {\n            \/\/ HTTP\u901a\u4fe1\u3067HTML\u306e\u5185\u5bb9\u3092\u53d6\u5f97\n            var response = await client.GetAsync(\"http:\/\/www.itcowork.co.jp\/\");\n            \/\/ \u6587\u5b57\u578b\u306b\u5909\u63db\n            var text = await response.Content.ReadAsStringAsync();\n            return text.ToString();\n        }\n    }\n}\n<\/string><\/int><\/code><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8a00\u8a9e\u3044\u308d\u3044\u308d\u3084\u3063\u3066\u308b\u3068\u3001\u6bce\u56de\u5fd8\u308c\u308b\u3084\u30fc\u3064\u3002 \u305d\u3057\u3066\u516c\u958b\u3059\u308b\u306e\u5fd8\u308c\u3066\u305fw<\/p>\n","protected":false},"author":1,"featured_media":1357,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[172],"tags":[204,205,182],"class_list":{"0":"post-1347","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-c","8":"tag-async","9":"tag-form","10":"tag-182","11":"entry"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.oqiita.com\/wp-content\/uploads\/2018\/08\/sango_csharp_icatch.png","jetpack_shortlink":"https:\/\/wp.me\/p8QluP-lJ","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/posts\/1347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1347"}],"version-history":[{"count":3,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/posts\/1347\/revisions"}],"predecessor-version":[{"id":1569,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/posts\/1347\/revisions\/1569"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=\/wp\/v2\/media\/1357"}],"wp:attachment":[{"href":"https:\/\/www.oqiita.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oqiita.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}