回调函数

AsyncCallback IAsyncResult

匿名 (未验证) 提交于 2019-12-02 23:40:02
using System; using System.Threading; using System.Collections.Generic; using System.Windows.Forms; namespace AsyncDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } class objstate //申明一个实体类 { public string fname; public string lname; public DateTime birthday; public objstate() { fname = "wang"; lname = "nima"; birthday = DateTime.Now; } public objstate(string fn, string ln) { fname = fn; lname = ln; //birthday = DateTime.Now; } } AsyncCallback callback; objstate obj; #region easy demo //申明委托 public delegate string deltest(); deltest begin; private void

模拟qsort实现冒泡排序

匿名 (未验证) 提交于 2019-12-02 23:36:01
1.数组指针 数组指针是指针,指针指向数组,其内部保存的是数组的地址,只要是指针,就占4个字节。 比如: int arr[5]; //数组 int *parr1[10]; //指针数组 int (*parr2)[10];//数组指针 int (*parr3[10])[5]; //数组指针数组 解释:命名规则按照操作符的优先级来决定。 2.函数指针和定义 定义:函数指针是指向函数的指针变量。 用途:调用函数和做函数的参数 声明方法:返回值类型(*指针变量名)([形参列表]) 比如: #include <stdio.h> void test() { printf("hehe\n"); } int main() { printf("%p\n", test); printf("%p\n", &test); return 0; } 运行结果: 输出的是两个地址,这两个地址是 test 函数的地址。 那我们的函数的地址要想保存起来,怎么保存? 下面我们看代 码: void test() { printf("hehe\n"); } //下面pfun1和pfun2哪个有能力存放test函数的地址? void (*pfun1)(); void *pfun2(); 首先,能给存储地址,就要求pfun1或者pfun2是指针,那么答案就是:pfun1可以存放。pfun1先和*结合,说明pfun1是指针

回调函数在小程序中的实际应用

匿名 (未验证) 提交于 2019-12-02 23:34:01
需求分析 1.小程序主页/index/index.js初加载时需要从服务器请求数据 2.请求功能封装在utils/util.js里面,在主页的onLoad里面调用 问题 1.由于在util.js中的请求是异步方式,返回时间不确定,导致onLoad的时候取不到值 // miniprogram/pages/index/index.js import { getDbFail } from '../utils/util' ; Page ({ data : { myData : '' }, //定义回调函数 //回调函数作为参数传到util.js的getDbFail中 //等到请求成功的时候运行该回调函数 ///这里的回调函数相当于一个承诺被传递过去,随着时间的推移,承诺一定会兑现(得到请求的数据:res) callback ( res ){ this . setData ({ myData : res }) }, onLoad : function () { let that = this ; getDbFail ( this . callback ) }); }, }) // miniprogram/pages/utils/util.js function getDbFail ( callback ){ let url = "http://rest.apizza.net/mock/xxx

Uni-app页面路由区分注意事项

匿名 (未验证) 提交于 2019-12-02 23:34:01
总结Tips: uni.navigateTo( OBJECT) ―― 保留当前页面,跳转到应用内的某个页面 ONJECT参数说明: 参数 类型 必填 默认值 说明 平台差异说明 url String 是 需要跳转的应用内非tabBar的页面路径,路径后可以带参数 ,。参数与路径之间使用 ? 分隔,参数键与参数值用 = 连接,不同的参数用 & 分隔; 例如:' path?key=value&key2=value2 ',path为跳转的目标页面路径,目标页面的onLoad函数可以得到传递的参数 animationType String 否 pop-in 窗口现实的动画效果 5+APP animationDuration Number 否 300 窗口动画持续时间,单位为ms 5+APP success Function 否 接口调用成功的回调函数 fail Function 否 接口调用失败的回调函数 complete Function 否 接口调用结束的回调函数(成功、失败都会执行) 注意:   页面跳转路径有层级限制,不能无限跳转新页面   跳转到 tabBar 页面只能使用 switchTab 跳转    不能在 App.vue 文件里进行页面跳转 plus.runtime.openURL uni.redirectTo( OBJECT )―― 关闭当前页面

pubSub传递数据

匿名 (未验证) 提交于 2019-12-02 23:34:01
终端安装:npm install --save pubsub-js 本地安装:引入pubsub.js 引入 import PubSub from ‘./js/pubsub.js’; 作用:用于传递数据 优点:组件之间不需要任何关系 语法: 传数据: PubSub.publish(“起名”,data);//data是被传的数据 接收数据 PubSub.subscribe(“上面的名字”,function(mes,data){}); //回调函数中data是传过来的数据 //回调函数中mes实际上指前面的名字,毫无作用,但必须写上 文章来源: https://blog.csdn.net/qq_42894622/article/details/90298445

用滑动条做调色板

匿名 (未验证) 提交于 2019-12-02 23:32:01
创建一个简单的程序:通过调节滑动条来设定画板颜色。我们 要创建一个窗口来显示显色,还有三个滑动条来设置 B,G,R 的颜色。当我们 滑动滚动条是窗口的颜色也会发生相应改变。默认情况下窗口的起始颜色为黑。 cv2.getTrackbarPos() 函数的一个参数是滑动条的名字,第二个参数 是滑动条被放置窗口的名字,第三个参数是滑动条的默认位置。第四个参数是 滑动条的最大值,第五个函数是回调函数,每次滑动条的滑动都会调用回调函 数。回调函数通常都会含有一个默认参数,就是滑动条的位置。在本例中这个 函数不用做任何事情,我们只需要 pass 就可以了。 滑动条的另外一个重要应用就是用作转换按钮。默认情况下 OpenCV 本 身不带有按钮函数。所以我们使用滑动条来代替。在我们的程序中,我们要创 建一个转换按钮,只有当装换按钮指向 ON 时,滑动条的滑动才有用,否则窗 户口都是黑的。 # -*- coding: utf-8 -*- """ Created on Sun May 5 13:51:34 2019 @author: nwpujun """ import cv2 import numpy as np def nothing(x): pass # 创建一副黑色图像 img=np.zeros((300,512,3),np.uint8) #高300宽512 cv2.namedWindow(

C++ 定时器Timer在项目中的使用

匿名 (未验证) 提交于 2019-12-02 23:30:02
Ŀ¼ 由于最近要在项目里做弹出弹幕,要求是弹出1秒后消失,一开始我使用空循环进行计时,发现执行到这段代码CPU占用率上升十几个百分点,后来改成定时器实现,发现CPU表现正常。 ShowWindow(true); time_t start_time = GetTickCount(); time_t now_time = start_time; while((now_time - start_time) <= 1000) { now_time = GetTickCount(); }; ShowWindow(false); 后来查了一下资料,空循环为啥使CPU占用率大幅升高,空循环执行快,在一个单位时间内会被调度很多次;再者是因为现在cpu占用率的算法。 首先要包含<Windows.h> 可以设置定时器,也可以杀死它。 每个定时器都有一个id,设置定时器的时候可以自己设置它,方便后面定时器的管理。 设置定时器的时候需要设置回调函数。 这部分代码如下 #include<Windows.h> void CALLBACK HideWnd(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime);//回调函数声明 //这2行在需要调用的时候调用,比如需要弹幕弹出来的时候。 ShowWindow(true); SetTimer(m_hWnd,1, 1000,

Scrapy 框架详解

匿名 (未验证) 提交于 2019-12-02 23:05:13
Scrapy 框架 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 twisted 框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。 框架架构 整体架构大致如下 框架流程解析 1、spiders产生request请求,将请求交给引擎 2、引擎(EGINE)吧刚刚处理好的请求交给了调度器,以一个队列或者堆栈的形式吧这些请求保存起来,调度一个出来再传给引擎 3、调度器(SCHEDULER)返回给引擎一个要爬取的url 6、引擎从下载器中收到response对象,从下载器中间件传给了spiders(spiders里面做两件事,1、产生request请求,2、为request请求绑定一个回调函数),spiders只负责解析爬取的任务。不做存储, 7、解析完成之后返回一个解析之后的结果items对象及(跟进的)新的Request给引擎,就被ITEM PIPELUMES处理了 8、引擎将

JS回调函数是异步调用 记录踩到的坑

匿名 (未验证) 提交于 2019-12-02 23:03:14
今天正好公司停电,放假一天,准备听课封装一下用nodejs操作 MongoDB数据库的方法来着, 然后我就掉坑里了 记录一下吧 首先说一下环境,我用的是nodejs 操作MongoDB数据库用的包是mongodb 第一步,按部就班的写一下,找到数据库和集合,准备操作; // 加载mongodb包 var mongodb = require("mongodb"); // 连接客户端 var mongoClient = mongodb.MongoClient; // 准备地址 var url = "mongodb://127.0.0.1:27017"; // 连接客户端 mongoClient.connect(url, function (err, client) { // 检测错误 if (err) { console.log("** 数据库连接失败 **"); } else { console.log("** 数据库连接成功 **"); // 操作 var db = client.db("db1811"); // 数据库 var collection = db.collection("person"); // 集合 // 增删改查操作 client.close(); // 关闭连接 } }) 二、我将查询数据的方法,抽取出来了 方法说明: 参数1 是集合对象,也就是要查询的集合;

自从用了Python监听邻居小姐姐的上网行为!后来她就成了我老婆!

匿名 (未验证) 提交于 2019-12-02 22:56:40
上面提到的子包都已被引入到pynput库中。要使用上面的子包,从pynput中引入即可。 from pynput import mouse, keyboard 接下来就跟着小胖一起来看下如何玩转鼠标和键盘吧。 效果如图 监控鼠标事件 使用pynput.mouse.Listener监控鼠标事件 效果如图 鼠标事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。 调用pynput.mouse.Listener.stop,发起StopException异常,或者回调函数中返回False都会停止事件的监听。 键盘事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。 调用pynput.keyboard.Listener.stop,发起StopException异常,或者回调函数中返回False都会停止事件的监听。 嘿嘿 是不是很好哇! 文章来源: 自从用了Python监听邻居小姐姐的上网行为!后来她就成了我老婆!