VC如何获得当前线程的ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC如何获得当前线程的ID相关的知识,希望对你有一定的参考价值。
用CreateThread创建线程后,怎么在线程函数中获得当前线程的ID,。。。此外,我创建2个线程输出多行字符,希望出现的是交错的顺序,但偏偏出现的顺序是顺序执行两个函数的顺序,为什么?
图片:
还有一处更简单的哈,就是在你创建进程的时候就知道了:如
m_hThread = ::CreateThread(NULL, 0, MyThreadProc, this, 0, &m_threadID);//最后一个参数就是线程ID
另外,你想出现的是交错的顺序也很简单,就是做好互斥工作就是了,在线程的相应位置调用WaitForSingleObject();不要忘了解锁即可,我是用SetEvent();最好后面加上Sleep(10);这样看到的效果就更明显了! 参考技术A CreateThread函数共六个参数,第六个参数能获得线程ID,不要设置成NULL。
你说这个顺序问题,应该是你没设置Sleep(),循环每个输出之间你设置一个Sleep。
如何在当前 vc 上获得 largeTitle,但在 vc 上获得小标题?
【中文标题】如何在当前 vc 上获得 largeTitle,但在 vc 上获得小标题?【英文标题】:how to get largeTitle on current vc, but small title on vc being pushed to? 【发布时间】:2019-07-19 08:35:50 【问题描述】:我有一个简单的“更多”屏幕,我想要一个largeTitle
。
我在一个静态表视图中有几个条目,它们通向其他视图控制器。
我想在“更多”屏幕中有大标题,而不是在推送到的屏幕中。
要么是所有大标题,要么都是小标题。我该怎么做?
我正在使用情节提要。
【问题讨论】:
【参考方案1】:你有没有尝试设置
self.navigationController?.navigationBar.prefersLargeTitles = false
在您的第二个视图控制器中?
【讨论】:
不,我认为我可以在情节提要中完成所有大型标题行为... 我不认为这是可能的。 我在代码中尝试了你的建议。它将所有标题设置为小,因为它将它设置在 navigationController 上。这不是我想要的。我想在第一个 vc 上有一个大标题,在第二个 vc 上有一个小标题,就像在整个 iOS 中一样。 尝试在您的普通视图控制器中设置它。 无论我在哪里设置,我在情节提要中可以做的都是一样的。如果我选择navigationController(截图,最左边的vc),我可以设置这个属性。在所有其他 vc 上,我无法设置此属性,因为只有一个 navigationController。【参考方案2】:在详细的vc上设置如下:
self.navigationItem.largeTitleDisplayMode = .never
如果你访问navigationController
的navigationItem
,它会改变所有detail vc,但是如果你访问detailVC的navigationItem
,它只会改变navigationBar
中的当前标题。
您无法在 Storyboard 中执行此操作,因为您无法在详细信息 vc 中单击 navigationBar
本身。
更多信息请访问WWDC video from 2017。
【讨论】:
【参考方案3】:因为只有一个navigation controller
可以堆叠您的所有视图,
你可以试试写
self.navigationController?.navigationBar.prefersLargeTitles = false
在第二个viewController的viewWillApear
方法中
在viewWillDisappear
上,您可以再次将其更改为
self.navigationController?.navigationBar.prefersLargeTitles = true
【讨论】:
有更好的方法吗?看起来这更像是一种 hack,而不是 Apple 的做法。 其实这不是hack,这也是用来在viewController被推时改变导航栏颜色,在它被弹出时改变它。如果您搜索更改推送的 viewControler 的导航栏颜色,您会发现这种做法。因为只有一个导航栈在堆叠所有视图以上是关于VC如何获得当前线程的ID的主要内容,如果未能解决你的问题,请参考以下文章