首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#报错——(Winform) 某个线程创建控件不能成为另一个线程创建控件父级

问题点描述:   新建一个线程,并在这个线程中,把某个控件父级去掉或者更改,导致报这个异常 网上解析如下:   “Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体...”基于本机 Win32 窗口,而 Win32 窗口从本质而言是单元线程。...STA 模型意味着可以在任何线程创建窗口,但窗口一旦创建后就不能切换线程,并且对它所有函数调用都必须在其创建线程发生。...STA 模型要求需从控件非创建线程调用控件任何方法必须被封送到(在其执行)该控件创建线程。...如果您在控件中为大量占用资源任务使用多线程,则用户界面可以背景线程执行一个大量占用资源计算同时保持可响应。 用人话描述为:控件是属于主线程(UI线程),不可以跨线程修改其父级。

3.1K41

为什么建议线上高并发量日志输出时候不能带有代码位置

如果大家发现网上有抄袭本文章,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么建议”系列第二篇,本系列中会针对一些高并发场景下,对于组内后台开发一些开发建议以及开发规范要求进行说明和分析解读...往期回顾: 为什么建议复杂但是性能关键所有查询都加上 force index 在业务一开始上线时候,我们线上日志级别是 INFO,并且日志内容中输出了代码位置,格式例如: 2022-03...模拟两种方式获取调用打印日志方法代码位置,与不获取代码位置会有多大性能差异 以下代码参考 Log4j2 官方代码单元测试,首先是模拟某一调用深度堆栈代码: 然后,编写测试代码,对比纯执行这个代码...由此,建议:对于微服务环境,尤其是响应式微服务环境,堆栈深度非常深,如果会输出大量日志的话,这个日志是不能带有代码位置,否则会造成严重性能衰减。...我们关闭输出代码行位置之后,同样压力下,CPU 占用不再那么高,并且整体吞吐量有了明显提升。

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

UIScrollView一步步实现1 简介1.1 工作原理1.2 UIScrollView常见几个重要控件1.3 UIScrollView常见重要属性1.4 手工代码实现拖动2 三个重要属性

普通 UIView 不具备滚动功能,不能显示过多内容。...UIScrollView是一个能够滚动视图控件,可以用来展示大量内容,并且可以通过滚动查看所有的内容 1.1 工作原理 缩放时候,原理是操作被缩放控件transform数值。...通过修改 contentOffset 调整内部视图坐标位置,从而给用户产生一种视觉滚动效果 contentOffset 值本质就是 bounds 原点(origin) 值,苹果在为了方便程序员理解...和普通内边距作用相反,不是让内容向里面缩进。是不改变原有的contentSize基础,让scrollView中内容向四周多滚动一些。...有一个重要属性: UIEdgeInsetsMake 用来描述内部控件最终可以弹回位置属性,里面的值是、左、下右

1.5K60

IOS5开发-UIScrollView添加单击事件方法

UIScrollView开发中是一个非常常用控件UIScrollView具有水平、垂直滚动和缩放效果。但是尽然没有响应单击事件这个事件。而这个事件日常交互中是非常需要。...比如当用于单击或轻触图片某个位置时,给于一些交互性提示。 下面将用例子说明一下如何给UIScrollView添加一个单击响应。...但是这里注意一下 [self.nextResponder touchesEnded:touches withEvent:event];这句话意思是将UIScrollView单击事件往下传递,传递到它父...这样如果父UIView实现了touchesEnded这个方法,也会响应到。但是这样写法经过测试IOS5.0以前版本可以。但IOS5以后(包括5)这不能往下传递,这里也不知道为什么。...本来想用UITapGestureRecognizer来实现,但是直接引发异常。不明白为什么UITapGestureRecognizer不能注册UIScrollViews

1.8K70

为什么同样WPF控件不同电脑呈现外观不一致

今天有同事跑过来说遇到了一个奇怪bug,同样程序win7和win10上界面相差了2个像素 ---- 一开始我们以为是半像素或者是分辨率问题。 结果调试了很久都没有结果。...不过意外我们发现了另一个奇妙东西。...下面两个图分别是win7和win10情况下soonp获得可视化树(已用demo替换) image.png image.png 有么有发现TabControl子元素Grid多出了一个名字templateRoot...代码里面查找,发现并没有这个名字Grid,所以可以确定这个是来自TabControl默认Style 所以我们找到win7和win10 下默认主题 Aero和Aero2 查找方法可以参见博客默认...当然对于这样子问题的确不是很好定位,因此我们有两种可行解决方案 1、尽量关键界面使用自定义样式,对元素呈现细节进行控制 2、App.xaml中指定主题样式。

1.1K20

小程序iOS客户端框架——控件事件逻辑框架与控件原生化(下)

接口通知客户端,客户端对原生控件frame位置大小属性做对应修改; 页面离开时,removeCanvas接口调用将画布控件从webview移除。...WKWebView解析HTML客户端生成对应原生控件示例) 如上图所示,WKWebView将在解析HTML时将该标签位置生成一个对应UIScrollView控件。...利用这个属性,我们可以开发者期望插入原生控件位置,预生成一个包含overflow标签DIV节点,然后插入原生控件时,将原生控件插入到该标签对应UIScrollView,就可以做到“原生控件不遮挡...,并通过“组件API”insertContainer通知客户端该滚动条位置、大小; b、客户端根据insertContainer传入位置和大小,WKWebView下遍历找到这个DIV标签对应UIScrollView...,并将控件插入到该UIScrollView下; d、当页面的DOM元素发生变化时,需要通过updateContainer告诉客户端调整指定原生控件大小,客户端根据参数调整原生控件大小(位置不需要调整

2.8K40

UIScrollView

UIScrollView常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动位置 (其实就是内容左上角与scrollView...左上角间距值,初始位置) @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容尺寸,滚动范围(能滚多远) @property...(nonatomic) UIEdgeInsets contentInset; 这个属性能够UIScrollView4周增加额外滚动区域,一般用来避免scrollView内容被其他控件挡住 @property...默认是 _scrollView 宽度 _scrollView.pagingEnabled = YES; UIScrollView不能滚动条件 contentOffset属性 AntoLayout 取消...,并且是弱指针 代理协议格式:控件类名Delegate,比如UIScrollViewDelegate、UITextFieldDelegate 代理方法:方法名一般是控件名开头,比如UIScrollView

1.8K60

【IOS开发基础系列】UIScrollView专题

当手势处理过程中,滚动视图不能够给子视图,发送任何跟踪调用。...这里例子是scrollView放置4个2排2列视图,但是内存中只占用6个视图内存空间。当scrollView滚动时候,通过不停重用之前视图内存空间,从而达到节省内存效果。...,是用来视图上画数字,这样就可以看到视图重用效果了,应该是从0开始到无穷多,但是实际内存中就创建了6个视图。...滚轴视图中,有一个叫做ContentOffset属性跟踪UIScrollView具体位置,你能够自己获取和设置它,ContentOffset是你当前可视内容滚轴视图边界左上角那个点。...        scrollsToTop是UIScrollView一个属性,主要用于点击设备状态栏时,是scrollsToTop == YES控件滚动返回至顶部。

38630

iOS开发中利用UICollectionView创建文字轮播控件

https://blog.csdn.net/u010105969/article/details/79912517 背景: 公司项目中有一个需求:首页添加一个纵向滚动文字轮播广告。...轮播效果图 实现过程: 上网搜索相关demo 搜到一个demo,demo是利用UIScrollView实现 思考:既然能用UIScrollView实现为什么不用UITableView去实现呢?...使用UITableView就不用考虑复用以及调整scrollView控件位置问题了。...手动敲代码利用UITableView实现具有需求效果控件,可当UITableView滑动到最后一个cell再滑动到第一个cell时候出现问题(并不能很流畅地从最后一个cell滑动回第一个cell)。...手动敲demo: 先在当前控制器view添加一个UICollectionView,每个item大小等于UICollectionView大小。

1.3K20

使用 UICollectionView 实现首页卡片轮播效果

UICollectionView 是 iOS6 之后引入一个新 UI 控件,与 UITableView 有着很多相似的地方,开发过程中我们都会选择使用它们俩来为 App 整个页面进行布局,比如说淘宝首页...// 轮播次数 private var loopTimes = 100 // 分页控件位置 public var pageControlAliment: PageControlAligment...不等于自定义类型时,只能影响当前分页控件大小,不能影响分页控件原点大小 public var pageControlDotSize: CGSize = CGSize(width: 10, height...,但是如果要正式 app 中使用,并且达到很好用户体验还是有很大优化空间。...,代码比较多(比较乱),有的同学可能看不是很明白,那是因为展示代码只是局部代码片段,主要是想给大家简单讲述一下实现思路,因为用手机看公众号文章如果贴上所有的代码,对于大家阅读体验是非常不好

1.8K20

为什么建议复杂但是性能关键所有查询都加上 force index

对于 MySQL 慢 SQL 分析 之前文章,提到过 SQL 调优一般通过下面三个工具: EXPLAIN:这个是比较浅显分析,并不会真正执行 SQL,分析出来可能不够准确详细。...但是不能直观看出来为啥会走错索引,需要通过 OPTIMIZER TRACE 进行进一步定位。但是进一步定位之前,想先说一下 MySQL InnoDB 查询优化器数据配置。...这也引出了一个新可能大家也会遇到问题,原有索引基础,加了一个复合索引(举个例子就是原来只有 idx_user_id,后来加了 idx_user_status_pay),那么原来只按照 user_id...并且索引不能随便加,想加多少加多少,也有以上说这两个原因,这样会加剧统计数据不准确性,导致用错索引。 手动 Analyze Table,会在表加读锁,会阻塞表更新以及事务。...结论和建议 综上所述,建议线上对于数据量比较大表,最好能提前通过分库分表控制每个表数据量,但是业务增长与产品需求都是不断迭代并且变复杂。很难保证不会出现大并且索引比较复杂表。

1.3K20

iOS开发之UIScrollViewAutolayout下使用

原则2:subviewssize不能依赖于UIScrollView 因为UIScrollViewsize依赖于subviews,而如果subviewssize再依赖于UIScrollView,就类似于操作系统中死锁了...二、正确姿势 1、StoryBoard中拖入一个UIScrollView。 2、设置UIScrollView约束。...例如Pin、下、左、右边距都为0,此时UIScrollView将占据整个ViewController’s view界面。...明明设置了宽和高了呀,如果不做这一步,UIScrollView还是不能滚动,因为这4个Pin约束实际是用于告诉UIScrollView:我会把你内容“撑到”多大。...如果contentView4条边发生变化,UIScrollView会自动调整contentSize。 5、接下来就是contentView布局项目中需要界面了。

91770

iOS学习—— UINavigationController返回按钮与侧滑返回手势研究

而在这个模块,我们有某个或某些viewController需要禁用侧滑手势(一般需要禁用侧滑手势是因为返回或退出当前viewController时需要double confirm,一些填表页面比较常见...:[self.navigationController screenEdgePanGestureRecognizer]];  二 导航栏back按钮   了解导航栏返回按钮之前,我们先了解一下导航栏管理导航栏各类控件...最重要一部分用蓝色加粗标出来了,就是说这个UINavigationBar主要是由左右按钮控件、中间标题控件组成。...原生导航条返回(back)按钮,一般是显示一个返回箭头+页面的标题(或者是 返回箭头+Back),如下图右边所示。 ?...首先,我们来说一下leftBarButtonItem、rightBarButtonItem,这两个是孪生兄弟,唯一区别就是导航条位置,顾名思义,leftBarButtonItem导航条左侧,rightBarButtonItem

6.4K60

埋点统计~~从UITableView数据曝光说起

然鹅这些粗粒度统计产品往往不能全面很好辅助互联网公司做好用户采集和建立用户画像模型,因此有条件公司内部会做自己用户行为埋点统计,打造一套自己用户行为分析平台…… 数据埋点采集对产品意义 UI...控件iOS移动端承载这丰富信息输出,用户使用浏览中会留下丰富数据采集信息 A用户会慢慢逐条浏览呈现产品 B用户往往会快速滑动进行浏览 C用户会快速翻页进行浏览 上面的三种用户基本涵盖了这个...目前可以这么定义---当页面滑动结束或首次加载完成时呈现给用户所有商品均算是曝光 UITableView中用户浏览中略过商品条目 这个就有意思了,用户快速浏览中可能会快速滑动翻页,更有甚者直接快速滑动之后让列表自己滑动...对于用户滑动过程中忽略掉条目比较复杂--滑 下滑 手指按着屏幕滑动 讲解之前我们先要处理一个问题:怎么判断屏幕滑动方向 系统中我们根据给定Pan手势移动来判断 extension UIScrollView...采集结果 我们来分析一下这个结果是如何获取 1 记录最底部位置(需要完全展示)v0 2 滑动之后自由滑动需要超过一屏幕 3 结束滑动记录顶部位置v99+ 那么v0~v99+ 之间即是快速滑动过程中没被用户认真浏览数据

1.3K32

如何判断 ScrollView、List 是否正在滚动中

欢迎大家 Discord 频道[2] 中进行更多地交流判断一个可滚动控件( ScrollView、List )是否处于滚动状态某些场景下具有重要作用。...: UIScrollView, willDecelerate decelerate: Bool)手指拖动结束后( 手指离开时 ),调用此方法 SwiftUI 中,很多视图控件是对 UIKit( AppKit...preference 与 onChange 调用时机非常类似,只有值发生改变后才会传递数据。 ScrollView、List 发生滚动时,它们内部子视图位置也将发生改变。...正以聊天室、Twitter、博客留言等讨论为灵感,从中选取有代表性问题和技巧制作成 Tips ,发布 Twitter 。...每周也会对当周博客新文章以及 Twitter 发布 Tips 进行汇总,并通过邮件列表形式发送给订阅者。订阅下方 邮件列表[9],可以及时获得每周 Tips 汇总。

3.7K40

UI篇-自定义控件中关于父试图中键盘遮挡问题

我们平时设计页面的时候,考虑到MVC设计模式会出现很多层试图分离,这里面就不可以避免出现自定控件一次自定义控件中出现了以下问题,记录在案以供大家注意和参考。...---- (1)UIScrollView 对于加载它上层试图中手势无影响,但对上上层时图手势就会失去响应。具体原因考虑到是 UIResponder 事件传递中出现了事件劫持。...但是要求子试图 大小要跟屏幕一样大才行,一般自定义控件可能是很小,所以这个自定义控件不能继承 BaseView,它上层View可以继承于 BaseView ,使用代理,当自定义控件UITextFeild...被编辑时通知上层试图,调用上层试图处理键盘遮罩方法,动态改变上层试图位置即可。...(3)给自定义控件初始化时候可以使用Frame,也可以使用Layout 使用Frame:x,y 坐标初始化为0,大小确定即可,使用Layout 来布局位置

46510

手机QQ空间iPhone X适配总结

[image.png] [image.png] 主要有两部分需要注意,一个是顶部状态栏(俗称刘海)高度高了24pt,而且中间刘海部分不能显示内容。...因此对于一般界面,如列表页,tab页等具有大量内容页面应该是不推荐将状态栏隐藏,不然反而让信息显得不完整。但是一些追求沉浸体验页面,如视频浮层、图片浮层例外。...,当我们全屏界面隐藏了状态栏之后,statusBarFrame获取到size为0,可能会出现控件布局错乱,因此最稳妥方法还是判断是否iPhone X返回一个常数,如下所示。...这个坑可能不能算是iPhone X坑,应该是iOS11坑,也可以说是被弃用UIWebView坑,就是调整UIScrollView内部偏移方法改为设置contentInsetAdjustmentBehavior...然而,对于UIWebView,我们通过一般方法只能设置其最外层UIScrollViewbehavior,对于里层UIScrollView就无能为力了,因此我们需要hook系统创建UIWebView

1.8K30

UIScrollView

frame是视图屏幕中展示位置和大小,也就是可视区域位置和大小。 contentSize是scrollView视图内部内容可以滚动区域大小,也就是scrollView视图内容实际大小。...UIScrollView一些常用代理方法如下: #pragma mark - UIScrollViewDelegate //监听页面滚动,根据scrollView.contentOffset来做业务逻辑...用于页面滚动停止时候开启一个逻辑,比如视频自动播放(页面停止滚动后,开启视图滚动前暂停gif或者视图播放) - (void)scrollViewDidEndDecelerating:(UIScrollView...上图是知乎首页一个截图。 首先,整个从上而下它是一个tableView+collectionView。...,然后这个scrollViewpagingEnabled要设置成YES,这样才能实现翻页效果。

87520
领券