context

在 .NET Core 中结合 HttpClientFactory 使用 Polly(下篇)

六月ゝ 毕业季﹏ 提交于 2020-03-13 08:53:41
译者:王亮 作者:Polly 团队 原文: http://t.cn/EhZ90oq 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的(包括标题)。其中可能会去除一些不影响理解但本人实在不知道如何组织的句子 译者序:这是“Polly and HttpClientFactory”这篇Wiki文档翻译的下篇。你可以 点击这里查看上篇 ,和 点击这里查看中篇 。本篇(下篇)主要讲几个Polly和HttpClientFactory在ASP.NET Core中结合使用的用例。如果你对ASP.NET Core 2.1新引入的HttpClient工厂还比较陌生,建议先阅读我的另一篇文章 .NET Core中正确使用 HttpClient的姿势 ,这有助于更好地理解本文。 —— 正文 —— 下面主要讲几个Polly和HttpClientFactory在ASP.NET Core中结合使用的用例。 用例:应用超时策略 HttpClient已经有了一个Timeout属性,但是在使用重试策略时该如何应用呢?Polly的超时策略又适用于什么地方? HttpClient.Timeout属性设置的超时将被应用于HttpClient实例的所有调用,包括重试之间的所有尝试和等待。 要在每次重试中使用超时,就要在Polly的超时策略之前配置重试策略。 在这种情况下,你可能希望重试策略在每次单个超时时重试

利用html+ashx实现aspx的功能

拥有回忆 提交于 2020-03-13 06:53:38
  最近准备学习下ASP.NET,初期在网上看了些视频教程,准备将自己学习的东西整理整理,留着日后可以参考参考。   本文采用了html、ashx实现aspx,实现了一个最简单的动态网页效果,开发环境是VS2012,Demo结构图如下:      aspx文件是微软的在服务器端运行的动态网页文件,通过IIS解析执行后可以得到动态页面,它包括aspx文件以及aspx.cs文件,如上图所示,一个用来控制前台,一个是控制后台。aspx.cs文件里面的类是继承System.Web.UI.Page的,而Page类实现了IHttpHandler接口。我们知道ashx.cs文件中的类也是实现IHttpHandler。aspx只是经过了一些更复杂的处理,它与用ashx和html共同实现动态页面的效果一样。下面给出一个TextBox、一个Button,分别采用两种方式展示客户端与服务器端的交互。   具体实现过程:   1.采用aspx方式:   index.aspx的代码如下: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="AspDemo.index"%> 2 <!DOCTYPE html> 3 <html xmlns="http://www.w3.org/1999

关于asp.net中*.ashx类型的文件

a 夏天 提交于 2020-03-13 06:17:23
问题:你想创建一个ASP.NET文件,它不是aspx文件,它能动态的返回一个图片、XML文件或其他非HTML文件。 解决方案:使用ashx文件。 1. 使用ASHX handlers 首先,我们要回顾要使用ASHX文件的目标,我们要做的是在一个地址中用ASHX文件并动态的返回内容。 我们将用到querystring,最后的地址格式为(例子): http://dotnetperls.com/?file=name 开始:通过这几个步骤你可以添加一个新的ashx文件:打开你的ASP.NET web site;右击项目选择 “Add New Item...”;将显示一个“Add New Item”的对话框,选择“Generic Handler”。此时,你就 会得到一个新的ashx文件。 2.自动生成代码 我们需要注意的是在ashx文件中自动生成的代码。它定义了IHttpHandler接口的两部分。非常重要的一 部分是ProcessRequest(),它将决定这个ashx文件是被请求还是被显示。你不能修改这个继承的接口或删 除它的方法。 3.映射handler 映射一个older URL或一个路径到你的新ashx文件通常是可取的。为了向后兼容和优化搜索引擎,你获取 希望这个handler能接管一个old URL。如何来实现呢?用urlMappings; <system.web>

Android 监听手机锁屏的工具类

只谈情不闲聊 提交于 2020-03-13 05:08:55
自定义 ScreenListener package com.example.teagardenhd.Listener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.PowerManager; /** * Created by ${zyj} on 2016/6/21. */ public class ScreenListener { private Context mContext; private ScreenBroadcastReceiver mScreenReceiver; private ScreenStateListener mScreenStateListener; public ScreenListener(Context context) { mContext = context; mScreenReceiver = new ScreenBroadcastReceiver(); } /** * screen状态广播接收者 */ private class

Android 用户界面---广播通知(Toast Notifications)

怎甘沉沦 提交于 2020-03-13 00:42:35
广播通知( Toast Notifications ) 广播通知是在窗口表面弹出的一个消息。它只填充消息展现需要的空间,并且用户当前的 Activity 依然可见和可交互。通知自动的渐入渐出,不接受交互事件。 下面图1显示一个例子是闹钟应用的广播通知,一旦闹钟被打开,就会在你设置的提醒时间显示一个广播通知。 图1 广播通知能够由 Activity 或 Service 创建和显示。如果你创建了一个源自 Service 的广播通知,它会显示当前有焦点的 Activity 的前面。 如要需要用户对通知做出响应,请考虑使用状态栏通知。 基础 首先,用 makeText() 方法实例化一个 Toast 对象。这个方法需要三个参数: 1. 应用程序的 Context 对象; 2. 要显示的文本消息; 3. 通知持续表示的时间。这个方法会返回一个合适的被实例化的 Toast 对象。你能够用 show() 方法显示广播通知,显示方法如下: Context context = getApplicationContext (); CharSequence text = "Hello toast!" ; int duration = Toast . LENGTH_SHORT ; Toast toast = Toast . makeText ( context , text , duration );

Android开发进阶 -- 通用适配器 CommonAdapter

感情迁移 提交于 2020-03-12 09:41:50
在Android开发中,我们经常会用到ListView 这个组件,为了将ListView 的内容展示出来,我们会去实现一个Adapter来适配,将Layout中的布局以列表的形式展现到组件中。   比如,像 GGTalk 安卓版的查找用户功能,会把符合条件的用户都列在下面: 为了达到这个效果,我们需要实现一个自定义的Adapter,而其它地方的ListView也要实现一个Adapter,这些Adapter会有很多重复的代码,非常繁琐,现在我就将重复代码封装到了一个通用的适配器CommonAdapter中,这样,在使用时只要继承CommonAdapter就可以了,如此就避免了大段代码的重复,让代码更简洁易懂。我们先来看看CommonAdapter的定义。   一.CommonAdapter 实现 public abstract class CommonAdapter<T> extends BaseAdapter { private List<T> dataList; protected Context context; protected int item_layoutId=0; protected HashMap<Integer,Integer> layoutIdMap; //多种itemView时用到。 第一个int对应type类型,第二个int对应 itemlayoutId /

Windows Internals 笔记——线程调度

孤街浪徒 提交于 2020-03-12 03:25:22
1.线程内核对象中的CONTEXT反应了线程上一次执行时CPU寄存器的状态。大约每隔20ms,Windows都会查看所有当前存在的线程内核对象。Windows在可调度的线程内核对象中选择一个,并将上次保存在线程上下文中的值载入CPU寄存器。这一操作被称为上下文切换。Windows实际上会记录每个线程的运行次数。 2.调用CreateProcess或者CreateThread时,系统将创建线程内核对象,并把挂起计数初始化为1。这样就不会给这个线程调度CPU了,因为线程初始化需要时间,我们不想再线程准备好之前就开始执行它。在线程初始化之后,CreateProcess或者CreateThread函数将查看是否有CREATE_SUSPENDED标志传入,如果有,函数返回并让新的线程处于挂起状态。如果没有,函数会将线程的挂起计数递减为0,线程就成为可调度的了。 3.通过创建一个处于挂起状态的线程,我们可以在线程执行任何代码之前改变它的环境(比如优先级)。之后可以调用ResumeThread函数使其变为可调度的,如果调用成功会返回线程的前一个挂起计数,否则返回0xFFFFFFFF。 4.还可以调用SuspendThread来挂起线程,任何线程都可以调用这个函数挂起另外一个线程(只要有线程句柄)。显然线程可以将自己挂起,但是它无法自己恢复。SuspendThread返回线程之前的挂起计数

19、属性赋值-@PropertySource加载外部配置文件

ⅰ亾dé卋堺 提交于 2020-03-12 00:33:02
19、属性赋值-@PropertySource加载外部配置文件 加载外部配置文件的注解 19.1 【xml】 在原先的xml 中需要 导入context:property-placeholder 声明,然后使用${nickName}取值 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--包扫描 , 只要标注了 @Controller 、

Android 性能优化工具之 TraceView

橙三吉。 提交于 2020-03-11 13:11:12
简介 TraceView 是 Android SDK 中内置的一个工具,它可以加载 trace 文件,用图形的形式展示代码的执行时间、次数及调用栈,主要便于我们分析及优化方法的执行。 官方文档 参考: TraceView 使用文档 使用 1. 获取 .trace 报表 第一步:点击Android Studio中的Tools/Android/Android Device Monitor,打开调试界面。 第二步:如下面截图所示,选中要分析的应用包名,点击 Start Method Profiling 按钮,之后就会开始跟踪: 第三步:进入应用内进行操作,操作完毕后,再次点击上面的按钮Stop Method Profiling,等待一会,就会在右边的窗口生成分析的报表,将鼠标上移到红框的文件名处,可以看到保存的位置,我们可以把它保存起来以便之后分析跟踪问题: 2. 分析 .trace 报表 获取完报表之后,我们就可以通过它来分析,这个区域分为三个部分: 红色区域:列出了运行的各个线程。 蓝色区域:线程在一段时间内的运行情况,我们点击有颜色的地方,就可以定位到具体做了哪些操作。 紫色区域:方法调用的具体情况。 前面两个区域都比较好理解,我们主要看一下紫色区域的每一列具体的含义: 上面的表格中,一部分单位是百分比,另一部分是ms,要注意区别,除此之外,有两点需要解释一下:

用Kotlin实现Android定制视图(KAD 06)

别说谁变了你拦得住时间么 提交于 2020-03-11 08:12:59
作者: Antonio Leiva 时间: Dec 27, 2016 原文链接: https://antonioleiva.com/custom-views-android-kotlin/ 在我们阅读有关class文章时,你可能记得通常情况下仅用一个构造函数。这对于要创建定制视图就是一个问题。 Android框架希望有多个构造函数对应不同的创建视图位置和创建视图方法(通过代码、使用XML,设置主题,等等),这样我们就不能忽略这种情况。 为此,Kotlin团队提供了同一个类中有多个构造函数的能力,就如同这里所说的。 兼容Java是Kotlin的基础要求,所以无论你遇到什么情况,就应该想到必定有方法实现你的需要。 在Kotlin中创建定制视图 即使你已经有创建定制视图的经验和一些 Kotlin 知识,也可能第一次在 Kotlin 中创建定制视图,你会发现有点复杂。 在 Kotlin 中实现几个构造函数是最为复杂的工作之一,准确地说,这是比较罕见用法。 但是,不用担心,一旦你接触过一次,其余的都是非常相似的。 注:尽管本文能有效的帮助你理解如何使用在 Kotlin 类中用多个构造函数,但是, Kirill Rakhman 在评论提及的方法是更好的方法。在结尾阅读。 创建继承View的类 为了这样,就如我们早前见到的那样创建一个类。例如它继承 View ,但不说明任何构造函数: 1