C#中如何为一个有返回值的函数添加新线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中如何为一个有返回值的函数添加新线程相关的知识,希望对你有一定的参考价值。

string类型的返回值~

public class A

    public string Test() => null;
    public void Main()
    
        //方式1:TAP 异步模式
        Task<string> task = Task.Run(new Func<string>(Test));
        //做些别的事情...然后获取结果
        task.Wait();
        string result1 = task.Result;
        
        //方式2:APM 异步模式
        Func<string> func = new Func<string>(Test);
        IAsyncResult asyncResult = func.BeginInvoke(null, null);
        //做些别的事情...然后获取结果
        string result2 = func.EndInvoke(asyncResult);
        
        //方式3:线程
        using (ManualResetEventSlim finishEvent = new ManualResetEventSlim(true))
        
            string tempResult = null;
            var thread = new Thread(() =>
            
                tempResult = Test();
                finishEvent.Set();
            );
            thread.Start();
            //做些别的事情...然后获取结果
            finishEvent.Wait();
            string result3 = tempResult;
        
    

参考技术A class Params // 线程函数参数类型 public int inparam = 0; // 表示一个传入的值 public int outparam = 0; // 表示一个返回的值

var pm = new Params inparam = 1 ; var thread = new Thread(param => ((Params)param).outparam = 10; Thread.Sleep(2000); ); thread.Start(pm); thread.Join(); MessageBox.Show("传出参数的值是 " + pm.outparam.ToString());
参考技术B

可以参考基于async和await关键字的异步编程,具体可参考msdn文档:msdn参考,这两个关键字是基于task的,但是只有在.net4.5及以上的版本中才可以使用。

HTML中如何为网页添加背景音乐

Hi,小伙伴们,大家好,是不是还有许多小伙伴在问HTML中如何为网页添加背景音乐,今天就来出一篇教程教给大家,那就废话不多说,盘它。

其实很简单,先准备好你的mp3音乐文件,这里我随便准备一个yinyue.mp3作为示例,那么怎么嵌入到网页呢?敲黑板了,注意,这是关键所在,参考以下关键代码

<div id="music"> <audio id="myAudio" autoplay="autoplay"> <source src="music/yinyue.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> <audio src="music/yinyue.mp3" controls="controls" autoplay hidden="true" style="display:none;"/></div>

直接拷贝以上代码放置在body标签中(body标签中随便哪里),并且替换yinyue.mp3为你的mp3文件即可,是不是很简单,备注一下,你的浏览器必须支持HTML5,否则不起作用的,当然你也不必要担心,现在的浏览器都支持的,除非你用的是老古董。。。

好了,下面来个升级版的,先看视频效果


怎么才能实现视频上的效果呢?


第一步:在head标签中加上jQuery文件
<script src="js/jquery-1.11.3.min.js"></script>

第二步:在body标签中上关键代码,之前加过的就不用加了
<div id="music"> <audio id="myAudio" autoplay="autoplay"> <source src="music/yinyue.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio> <audio src="music/yinyue.mp3" controls="controls" autoplay hidden="true" style="display:none;"/></div>

第三步:在body标签的最后加上以下脚本代码
<script> $(document).ready(function() {  $(".xwcms").removeClass("animation"); $(".xwcms").on("click", function() { $(".xwcms").addClass("animation"); $(this).toggleClass("pause"); var audio = $("#music audio")[0]; if (audio.paused) { $(".xwcms").addClass("animation"); audio.play(); } else { $(".xwcms").removeClass("animation"); audio.pause(); } audio.addEventListener('ended', function () {  $(".xwcms").removeClass("animation"); }, false); }); });</script>

通过以上三步即可实现视频中的播放和暂停音乐的功能,喜欢的同学就赶紧试试吧


最后还有福利,附上完整的示例代码,关注 youtiyblog 微信公众号,回复 初恋 即可获得百度云下载地址


以上是关于C#中如何为一个有返回值的函数添加新线程的主要内容,如果未能解决你的问题,请参考以下文章

Java线程:新特征-有返回值的线程

Oracle:如何为“SELECT * FROM tab WHERE name IN (function())”创建返回值的函数

C#函数多返回值的方法

37 py为什么要使用函数函数中添加文本注释 没有返回值的函数

如何使用线程去执行一个 有返回值的方法,并获取返回值?

Java中使用有返回值的线程