C#中如何为一个有返回值的函数添加新线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中如何为一个有返回值的函数添加新线程相关的知识,希望对你有一定的参考价值。
string类型的返回值~
public class Apublic 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中如何为网页添加背景音乐
<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>
<script src="js/jquery-1.11.3.min.js"></script>
<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>
<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>
通过以上三步即可实现视频中的播放和暂停音乐的功能,喜欢的同学就赶紧试试吧
以上是关于C#中如何为一个有返回值的函数添加新线程的主要内容,如果未能解决你的问题,请参考以下文章
Oracle:如何为“SELECT * FROM tab WHERE name IN (function())”创建返回值的函数