仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 610|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Silverlight中同步伐用WebClient的办理...

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。代码以下:
复制代码代码以下:
privatevoidbutton2_Click(objectsender,RoutedEventArgse)
{
Service1Clientsc=newService1Client();
sc.DoWorkCompleted+=newEventHandler<DoWorkCompletedEventArgs>(sc_DoWorkCompleted);
sc.DoWorkAsync(textBox1.Text);
}
voidsc_DoWorkCompleted(objectsender,DoWorkCompletedEventArgse)
{
textBox2.Text=e.Result;
}

如果你的挪用十分庞大的话,好比当这个挪用完成的时分入手下手下一个挪用,然后又举行下一个挪用,各个挪用之间存在联系关系干系的话,一向XX_DoWorkCompleted会让你头年夜,而且倒霉于代码的办理。若碰着过如许的成绩的伴侣必定很但愿假如可以同步伐用就行了,这篇文章将帮到你。大概如今不必要,等你必要的时分记得用就好了,别像我现在那样难为的不可。
次要是必要援用一个类库的成绩,这个类库是本国人写的,称号为DanielVaughan.dll,下载完以后,起首必要在项目中增加对它的援用,以下图,

然后在程序中增加对两个空间的援用,以下图:



将本来的增加botton1事务:
复制代码代码以下:
privatevoidbutton1_Click(objectsender,RoutedEventArgse)
{
stringdd=textBox1.Text;
stringres="NULL";
ThreadPool.QueueUserWorkItem(delegate
{
Service1sv=ChannelManager.Instance.GetChannel<Service1>();
/*PerformsynchronousWCFcall.*/
res=SynchronousChannelBroker.PerformAction<string,string>(sv.BeginDoWork,sv.EndDoWork,dd);
Dispatcher.BeginInvoke(delegate
{
textBox2.Text+="
同步伐用--"+res+"
";
});
});
}

如许就能够完成对WebClient的同步伐用了,当你必要联系关系挪用WebClient3次以上的时分能够思索利用这个类库,假如只是复杂的挪用下的话,没有需要利用。
页面全体代码:
复制代码代码以下:
<UserControlx:Class="SilverlightApplication2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"d:DesignWidth="400"xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"Width="640"Height="480">
<Gridx:Name="LayoutRoot">
<Grid.Background>
<LinearGradientBrushEndPoint="0.443,0.621"StartPoint="0.443,-2.509">
<GradientStopColor="#FF5C6768"/>
<GradientStopColor="White"Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<ButtonContent="同步伐用服务"Height="40"HorizontalAlignment="Left"Margin="67,98,0,0"Name="button1"VerticalAlignment="Top"Width="120"Click="button1_Click"/>
<dataInput:LabelHeight="50"HorizontalAlignment="Left"Margin="67,188,0,0"Name="label2"VerticalAlignment="Top"Width="46"Content="形态:"FontSize="16"/>
<TextBoxHeight="40"HorizontalAlignment="Left"Margin="165,27,0,0"Name="textBox1"VerticalAlignment="Top"Width="300"FontSize="16"/>
<TextBoxHeight="100"HorizontalAlignment="Left"Margin="146,188,0,0"Name="textBox2"VerticalAlignment="Top"Width="400"FontSize="16"TextWrapping="Wrap"Text="还没有挪用服务"/>
<ButtonContent="异步伐用服务"Height="40"HorizontalAlignment="Left"Margin="346,98,0,0"Name="button2"VerticalAlignment="Top"Width="120"Click="button2_Click"/>
<dataInput:LabelHeight="40"HorizontalAlignment="Left"Margin="67,27,0,0"Name="label1"VerticalAlignment="Top"Width="92"FontSize="16"Content="输出文本:"/>
</Grid>
</UserControl>

处置程序全体代码:
复制代码代码以下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Net;
usingSystem.Windows;
usingSystem.Windows.Controls;
usingSystem.Windows.Documents;
usingSystem.Windows.Input;
usingSystem.Windows.Media;
usingSystem.Windows.Media.Animation;
usingSystem.Windows.Shapes;
usingSilverlightApplication2.ServiceReference1;
usingSystem.Threading;
usingDanielVaughan;
namespaceSilverlightApplication2
{
publicpartialclassMainPage:UserControl
{
publicMainPage()
{
InitializeComponent();
UISynchronizationContext.Instance.Initialize(Dispatcher);
}
privatevoidbutton1_Click(objectsender,RoutedEventArgse)
{
stringdd=textBox1.Text;
stringres="NULL";
ThreadPool.QueueUserWorkItem(delegate
{
Service1sv=ChannelManager.Instance.GetChannel<Service1>();
/*PerformsynchronousWCFcall.*/
res=SynchronousChannelBroker.PerformAction<string,string>(sv.BeginDoWork,sv.EndDoWork,dd);
Dispatcher.BeginInvoke(delegate
{
textBox2.Text+="
同步伐用--"+res+"
";
});
});
}
privatevoidbutton2_Click(objectsender,RoutedEventArgse)
{
Service1Clientsc=newService1Client();
sc.DoWorkCompleted+=newEventHandler<DoWorkCompletedEventArgs>(sc_DoWorkCompleted);
sc.DoWorkAsync(textBox1.Text);
}
voidsc_DoWorkCompleted(objectsender,DoWorkCompletedEventArgse)
{
textBox2.Text+="异步伐用--"+e.Result+"
";
}
}
}

Service代码:
复制代码代码以下:
usingSystem;
usingSystem.Linq;
usingSystem.Runtime.Serialization;
usingSystem.ServiceModel;
usingSystem.ServiceModel.Activation;
namespaceSilverlightApplication2.Web
{
[ServiceContract(Namespace="")]
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
publicclassService1
{
[OperationContract]
publicstringDoWork(stringaa)
{
//在此处增加操纵完成
return"挪用服务完成,前往你输出的值:"+aa;
}
//在此处增加更多操纵并利用[OperationContract]标志它们
}
}


程序运转截图:
1.

2.

3.




接待人人配合切磋,以为好的话请保举下。自己手艺程度无限,若有不敷的地方,还请园友多多品评斧正,感谢。
来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着!
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-19 08:40:17 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
再现理想 该用户已被删除
板凳
发表于 2015-1-24 23:18:45 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
变相怪杰 该用户已被删除
地板
发表于 2015-2-2 14:48:22 | 只看该作者
那么,ASP.Net有哪些改进呢?
若相依 该用户已被删除
5#
发表于 2015-2-7 23:08:11 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
小妖女 该用户已被删除
6#
发表于 2015-3-7 09:46:01 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
小魔女 该用户已被删除
7#
发表于 2015-3-14 21:38:18 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
8#
发表于 2015-3-21 15:10:32 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-11 08:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表